Commit 4b5e6b55 authored by André Pacak's avatar André Pacak

make records and variants look better (list sperated by commas, use : for inside of entries)

parent f82ad822
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -15,7 +15,7 @@
<unit at="10,0,76,0" name="RecordTypes.structure.LanguageConceptSwitch" />
</file>
<file name="StructureAspectDescriptor.java">
<unit at="15,0,359,0" name="RecordTypes.structure.StructureAspectDescriptor" />
<unit at="15,0,358,0" name="RecordTypes.structure.StructureAspectDescriptor" />
</file>
</root>
<root nodeRef="r:a882191d-3685-4616-b5b1-384cf716b30e(RecordTypes.structure)/1894367444356272849">
......@@ -45,22 +45,21 @@
<node id="1894367444356272849" at="232,34,233,76" concept="0" />
<node id="1894367444356272849" at="252,34,253,76" concept="0" />
<node id="1894367444356272849" at="270,34,271,76" concept="0" />
<node id="1894367444356272849" at="281,71,282,76" concept="0" />
<node id="1894367444356272849" at="309,71,310,76" concept="0" />
<node id="1894367444356272849" at="318,34,319,76" concept="0" />
<node id="1894367444356272849" at="326,62,327,150" concept="3" />
<node id="1894367444356272849" at="327,150,328,19" concept="0" />
<node id="1894367444356272849" at="328,19,329,98" concept="0" />
<node id="1894367444356272849" at="329,98,330,17" concept="0" />
<node id="1894367444356272849" at="330,17,331,22" concept="4" />
<node id="1894367444356272849" at="343,71,344,76" concept="0" />
<node id="1894367444356272849" at="351,34,352,76" concept="0" />
<node id="1894367444356272849" at="326,0,333,0" concept="6" trace="createDescriptorForTerm#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<node id="1894367444356272849" at="308,71,309,76" concept="0" />
<node id="1894367444356272849" at="317,34,318,76" concept="0" />
<node id="1894367444356272849" at="325,62,326,150" concept="3" />
<node id="1894367444356272849" at="326,150,327,19" concept="0" />
<node id="1894367444356272849" at="327,19,328,98" concept="0" />
<node id="1894367444356272849" at="328,98,329,17" concept="0" />
<node id="1894367444356272849" at="329,17,330,22" concept="4" />
<node id="1894367444356272849" at="342,71,343,76" concept="0" />
<node id="1894367444356272849" at="350,34,351,76" concept="0" />
<node id="1894367444356272849" at="325,0,332,0" concept="6" trace="createDescriptorForTerm#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<scope id="1894367444356272849" at="98,38,99,29" />
<scope id="1894367444356272849" at="326,62,331,22">
<scope id="1894367444356272849" at="325,62,330,22">
<var name="b" id="1894367444356272849" />
</scope>
<scope id="1894367444356272849" at="326,0,333,0" />
<scope id="1894367444356272849" at="325,0,332,0" />
</file>
</root>
<root nodeRef="r:a882191d-3685-4616-b5b1-384cf716b30e(RecordTypes.structure)/1894367444356272850">
......@@ -83,18 +82,18 @@
<file name="StructureAspectDescriptor.java">
<node id="1894367444356272850" at="40,0,41,0" concept="1" trace="myConceptZero" />
<node id="1894367444356272850" at="104,38,105,29" concept="4" />
<node id="1894367444356272850" at="349,62,350,150" concept="3" />
<node id="1894367444356272850" at="350,150,351,34" concept="0" />
<node id="1894367444356272850" at="352,76,353,98" concept="0" />
<node id="1894367444356272850" at="353,98,354,17" concept="0" />
<node id="1894367444356272850" at="354,17,355,17" concept="0" />
<node id="1894367444356272850" at="355,17,356,22" concept="4" />
<node id="1894367444356272850" at="349,0,358,0" concept="6" trace="createDescriptorForZero#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<node id="1894367444356272850" at="348,62,349,150" concept="3" />
<node id="1894367444356272850" at="349,150,350,34" concept="0" />
<node id="1894367444356272850" at="351,76,352,98" concept="0" />
<node id="1894367444356272850" at="352,98,353,17" concept="0" />
<node id="1894367444356272850" at="353,17,354,17" concept="0" />
<node id="1894367444356272850" at="354,17,355,22" concept="4" />
<node id="1894367444356272850" at="348,0,357,0" concept="6" trace="createDescriptorForZero#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<scope id="1894367444356272850" at="104,38,105,29" />
<scope id="1894367444356272850" at="349,62,356,22">
<scope id="1894367444356272850" at="348,62,355,22">
<var name="b" id="1894367444356272850" />
</scope>
<scope id="1894367444356272850" at="349,0,358,0" />
<scope id="1894367444356272850" at="348,0,357,0" />
</file>
</root>
<root nodeRef="r:a882191d-3685-4616-b5b1-384cf716b30e(RecordTypes.structure)/1894367444356272855">
......@@ -117,19 +116,19 @@
<file name="StructureAspectDescriptor.java">
<node id="1894367444356272855" at="36,0,37,0" concept="1" trace="myConceptSucc" />
<node id="1894367444356272855" at="96,38,97,29" concept="4" />
<node id="1894367444356272855" at="316,62,317,150" concept="3" />
<node id="1894367444356272855" at="317,150,318,34" concept="0" />
<node id="1894367444356272855" at="319,76,320,98" concept="0" />
<node id="1894367444356272855" at="320,98,321,17" concept="0" />
<node id="1894367444356272860" at="321,17,322,195" concept="0" />
<node id="1894367444356272855" at="322,195,323,20" concept="0" />
<node id="1894367444356272855" at="323,20,324,22" concept="4" />
<node id="1894367444356272855" at="316,0,326,0" concept="6" trace="createDescriptorForSucc#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<node id="1894367444356272855" at="315,62,316,150" concept="3" />
<node id="1894367444356272855" at="316,150,317,34" concept="0" />
<node id="1894367444356272855" at="318,76,319,98" concept="0" />
<node id="1894367444356272855" at="319,98,320,17" concept="0" />
<node id="1894367444356272860" at="320,17,321,195" concept="0" />
<node id="1894367444356272855" at="321,195,322,20" concept="0" />
<node id="1894367444356272855" at="322,20,323,22" concept="4" />
<node id="1894367444356272855" at="315,0,325,0" concept="6" trace="createDescriptorForSucc#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<scope id="1894367444356272855" at="96,38,97,29" />
<scope id="1894367444356272855" at="316,62,324,22">
<scope id="1894367444356272855" at="315,62,323,22">
<var name="b" id="1894367444356272855" />
</scope>
<scope id="1894367444356272855" at="316,0,326,0" />
<scope id="1894367444356272855" at="315,0,325,0" />
</file>
</root>
<root nodeRef="r:a882191d-3685-4616-b5b1-384cf716b30e(RecordTypes.structure)/1894367444356272864">
......@@ -152,18 +151,18 @@
<file name="StructureAspectDescriptor.java">
<node id="1894367444356272864" at="39,0,40,0" concept="1" trace="myConceptVar" />
<node id="1894367444356272864" at="102,37,103,28" concept="4" />
<node id="1894367444356272864" at="340,61,341,149" concept="3" />
<node id="1894367444356272864" at="341,149,342,34" concept="0" />
<node id="1894367444356272864" at="342,34,343,71" concept="0" />
<node id="1894367444356272864" at="344,76,345,98" concept="0" />
<node id="1894367444356272864" at="345,98,346,17" concept="0" />
<node id="1894367444356272864" at="346,17,347,22" concept="4" />
<node id="1894367444356272864" at="340,0,349,0" concept="6" trace="createDescriptorForVar#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<node id="1894367444356272864" at="339,61,340,149" concept="3" />
<node id="1894367444356272864" at="340,149,341,34" concept="0" />
<node id="1894367444356272864" at="341,34,342,71" concept="0" />
<node id="1894367444356272864" at="343,76,344,98" concept="0" />
<node id="1894367444356272864" at="344,98,345,17" concept="0" />
<node id="1894367444356272864" at="345,17,346,22" concept="4" />
<node id="1894367444356272864" at="339,0,348,0" concept="6" trace="createDescriptorForVar#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<scope id="1894367444356272864" at="102,37,103,28" />
<scope id="1894367444356272864" at="340,61,347,22">
<scope id="1894367444356272864" at="339,61,346,22">
<var name="b" id="1894367444356272864" />
</scope>
<scope id="1894367444356272864" at="340,0,349,0" />
<scope id="1894367444356272864" at="339,0,348,0" />
</file>
</root>
<root nodeRef="r:a882191d-3685-4616-b5b1-384cf716b30e(RecordTypes.structure)/1894367444356272898">
......@@ -404,18 +403,18 @@
<node id="1894367444356273039" at="154,34,155,76" concept="0" />
<node id="1894367444356273039" at="243,34,244,76" concept="0" />
<node id="1894367444356273039" at="261,34,262,76" concept="0" />
<node id="1894367444356273039" at="290,34,291,76" concept="0" />
<node id="1894367444356273039" at="333,62,334,150" concept="3" />
<node id="1894367444356273039" at="334,150,335,19" concept="0" />
<node id="1894367444356273039" at="335,19,336,98" concept="0" />
<node id="1894367444356273039" at="336,98,337,17" concept="0" />
<node id="1894367444356273039" at="337,17,338,22" concept="4" />
<node id="1894367444356273039" at="333,0,340,0" concept="6" trace="createDescriptorForType#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<node id="1894367444356273039" at="289,34,290,76" concept="0" />
<node id="1894367444356273039" at="332,62,333,150" concept="3" />
<node id="1894367444356273039" at="333,150,334,19" concept="0" />
<node id="1894367444356273039" at="334,19,335,98" concept="0" />
<node id="1894367444356273039" at="335,98,336,17" concept="0" />
<node id="1894367444356273039" at="336,17,337,22" concept="4" />
<node id="1894367444356273039" at="332,0,339,0" concept="6" trace="createDescriptorForType#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<scope id="1894367444356273039" at="100,38,101,29" />
<scope id="1894367444356273039" at="333,62,338,22">
<scope id="1894367444356273039" at="332,62,337,22">
<var name="b" id="1894367444356273039" />
</scope>
<scope id="1894367444356273039" at="333,0,340,0" />
<scope id="1894367444356273039" at="332,0,339,0" />
</file>
</root>
<root nodeRef="r:a882191d-3685-4616-b5b1-384cf716b30e(RecordTypes.structure)/1894367444356273040">
......@@ -576,18 +575,18 @@
<file name="StructureAspectDescriptor.java">
<node id="2294833391481651910" at="33,0,34,0" concept="1" trace="myConceptRecordType" />
<node id="2294833391481651910" at="90,44,91,35" concept="4" />
<node id="2294833391481651910" at="288,68,289,156" concept="3" />
<node id="2294833391481651910" at="289,156,290,34" concept="0" />
<node id="2294833391481651910" at="291,76,292,98" concept="0" />
<node id="2294833391481651910" at="292,98,293,17" concept="0" />
<node id="2294833391481651915" at="293,17,294,197" concept="0" />
<node id="2294833391481651910" at="294,197,295,22" concept="4" />
<node id="2294833391481651910" at="288,0,297,0" concept="6" trace="createDescriptorForRecordType#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<node id="2294833391481651910" at="287,68,288,156" concept="3" />
<node id="2294833391481651910" at="288,156,289,34" concept="0" />
<node id="2294833391481651910" at="290,76,291,98" concept="0" />
<node id="2294833391481651910" at="291,98,292,17" concept="0" />
<node id="2294833391481651915" at="292,17,293,197" concept="0" />
<node id="2294833391481651910" at="293,197,294,22" concept="4" />
<node id="2294833391481651910" at="287,0,296,0" concept="6" trace="createDescriptorForRecordType#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<scope id="2294833391481651910" at="90,44,91,35" />
<scope id="2294833391481651910" at="288,68,295,22">
<scope id="2294833391481651910" at="287,68,294,22">
<var name="b" id="2294833391481651910" />
</scope>
<scope id="2294833391481651910" at="288,0,297,0" />
<scope id="2294833391481651910" at="287,0,296,0" />
</file>
</root>
<root nodeRef="r:a882191d-3685-4616-b5b1-384cf716b30e(RecordTypes.structure)/2294833391481651919">
......@@ -610,19 +609,19 @@
<file name="StructureAspectDescriptor.java">
<node id="2294833391481651919" at="34,0,35,0" concept="1" trace="myConceptRecordTypeEntry" />
<node id="2294833391481651919" at="92,49,93,40" concept="4" />
<node id="2294833391481651919" at="297,73,298,161" concept="3" />
<node id="2294833391481651919" at="298,161,299,34" concept="0" />
<node id="2294833391481651919" at="299,34,300,71" concept="0" />
<node id="2294833391481651919" at="300,71,301,98" concept="0" />
<node id="2294833391481651919" at="301,98,302,17" concept="0" />
<node id="2294833391481651924" at="302,17,303,196" concept="0" />
<node id="2294833391481651919" at="303,196,304,22" concept="4" />
<node id="2294833391481651919" at="297,0,306,0" concept="6" trace="createDescriptorForRecordTypeEntry#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<node id="2294833391481651919" at="296,73,297,161" concept="3" />
<node id="2294833391481651919" at="297,161,298,34" concept="0" />
<node id="2294833391481651919" at="298,34,299,71" concept="0" />
<node id="2294833391481651919" at="299,71,300,98" concept="0" />
<node id="2294833391481651919" at="300,98,301,17" concept="0" />
<node id="2294833391481651924" at="301,17,302,196" concept="0" />
<node id="2294833391481651919" at="302,196,303,22" concept="4" />
<node id="2294833391481651919" at="296,0,305,0" concept="6" trace="createDescriptorForRecordTypeEntry#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<scope id="2294833391481651919" at="92,49,93,40" />
<scope id="2294833391481651919" at="297,73,304,22">
<scope id="2294833391481651919" at="296,73,303,22">
<var name="b" id="2294833391481651919" />
</scope>
<scope id="2294833391481651919" at="297,0,306,0" />
<scope id="2294833391481651919" at="296,0,305,0" />
</file>
</root>
<root nodeRef="r:a882191d-3685-4616-b5b1-384cf716b30e(RecordTypes.structure)/3192721931268066706">
......@@ -648,16 +647,16 @@
<node id="3192721931268066706" at="278,69,279,157" concept="3" />
<node id="3192721931268066706" at="279,157,280,34" concept="0" />
<node id="3192721931268066706" at="280,34,281,71" concept="0" />
<node id="3192721931268066706" at="282,76,283,98" concept="0" />
<node id="3192721931268066706" at="283,98,284,17" concept="0" />
<node id="3192721931268066726" at="284,17,285,195" concept="0" />
<node id="3192721931268066706" at="285,195,286,22" concept="4" />
<node id="3192721931268066706" at="278,0,288,0" concept="6" trace="createDescriptorForRecordEntry#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<node id="3192721931268066706" at="281,71,282,98" concept="0" />
<node id="3192721931268066706" at="282,98,283,17" concept="0" />
<node id="3192721931268066726" at="283,17,284,195" concept="0" />
<node id="3192721931268066706" at="284,195,285,22" concept="4" />
<node id="3192721931268066706" at="278,0,287,0" concept="6" trace="createDescriptorForRecordEntry#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<scope id="3192721931268066706" at="88,45,89,36" />
<scope id="3192721931268066706" at="278,69,286,22">
<scope id="3192721931268066706" at="278,69,285,22">
<var name="b" id="3192721931268066706" />
</scope>
<scope id="3192721931268066706" at="278,0,288,0" />
<scope id="3192721931268066706" at="278,0,287,0" />
</file>
</root>
<root nodeRef="r:a882191d-3685-4616-b5b1-384cf716b30e(RecordTypes.structure)/5790571747095872620">
......@@ -752,19 +751,19 @@
<file name="StructureAspectDescriptor.java">
<node id="658257277626152476" at="35,0,36,0" concept="1" trace="myConceptSel" />
<node id="658257277626152476" at="94,37,95,28" concept="4" />
<node id="658257277626152476" at="306,61,307,148" concept="3" />
<node id="658257277626152476" at="307,148,308,34" concept="0" />
<node id="658257277626152476" at="308,34,309,71" concept="0" />
<node id="658257277626152476" at="310,76,311,97" concept="0" />
<node id="658257277626152476" at="311,97,312,17" concept="0" />
<node id="658257277626152481" at="312,17,313,193" concept="0" />
<node id="658257277626152476" at="313,193,314,22" concept="4" />
<node id="658257277626152476" at="306,0,316,0" concept="6" trace="createDescriptorForSel#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<node id="658257277626152476" at="305,61,306,148" concept="3" />
<node id="658257277626152476" at="306,148,307,34" concept="0" />
<node id="658257277626152476" at="307,34,308,71" concept="0" />
<node id="658257277626152476" at="309,76,310,97" concept="0" />
<node id="658257277626152476" at="310,97,311,17" concept="0" />
<node id="658257277626152481" at="311,17,312,193" concept="0" />
<node id="658257277626152476" at="312,193,313,22" concept="4" />
<node id="658257277626152476" at="305,0,315,0" concept="6" trace="createDescriptorForSel#()Ljetbrains/mps/smodel/runtime/ConceptDescriptor;" />
<scope id="658257277626152476" at="94,37,95,28" />
<scope id="658257277626152476" at="306,61,314,22">
<scope id="658257277626152476" at="305,61,313,22">
<var name="b" id="658257277626152476" />
</scope>
<scope id="658257277626152476" at="306,0,316,0" />
<scope id="658257277626152476" at="305,0,315,0" />
</file>
</root>
<root nodeRef="r:a882191d-3685-4616-b5b1-384cf716b30e(RecordTypes.structure)/7997266186978933431">
......
......@@ -15,6 +15,7 @@
<language id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor">
<concept id="1071666914219" name="jetbrains.mps.lang.editor.structure.ConceptEditorDeclaration" flags="ig" index="24kQdi" />
<concept id="1140524381322" name="jetbrains.mps.lang.editor.structure.CellModel_ListWithRole" flags="ng" index="2czfm3">
<property id="1140524450557" name="separatorText" index="2czwfO" />
<child id="1140524464360" name="cellLayout" index="2czzBx" />
</concept>
<concept id="1106270571710" name="jetbrains.mps.lang.editor.structure.CellLayout_Vertical" flags="nn" index="2iRkQZ" />
......@@ -25,10 +26,15 @@
<concept id="1078939183254" name="jetbrains.mps.lang.editor.structure.CellModel_Component" flags="sg" stub="3162947552742194261" index="PMmxH">
<reference id="1078939183255" name="editorComponent" index="PMmxG" />
</concept>
<concept id="1186414536763" name="jetbrains.mps.lang.editor.structure.BooleanStyleSheetItem" flags="ln" index="VOi$J">
<property id="1186414551515" name="flag" index="VOm3f" />
</concept>
<concept id="1186414928363" name="jetbrains.mps.lang.editor.structure.SelectableStyleSheetItem" flags="ln" index="VPM3Z" />
<concept id="1630016958697344083" name="jetbrains.mps.lang.editor.structure.IMenu_Concept" flags="ng" index="2ZABuq">
<reference id="6591946374543067572" name="conceptDeclaration" index="aqKnT" />
</concept>
<concept id="1233758997495" name="jetbrains.mps.lang.editor.structure.PunctuationLeftStyleClassItem" flags="ln" index="11L4FC" />
<concept id="1233759184865" name="jetbrains.mps.lang.editor.structure.PunctuationRightStyleClassItem" flags="ln" index="11LMrY" />
<concept id="3308396621974580100" name="jetbrains.mps.lang.editor.structure.SubstituteMenu_Default" flags="ng" index="3p36aQ" />
<concept id="1139848536355" name="jetbrains.mps.lang.editor.structure.CellModel_WithRole" flags="ng" index="1$h60E">
<reference id="1140103550593" name="relationDeclaration" index="1NtTu8" />
......@@ -362,6 +368,7 @@
<property role="3F0ifm" value="{" />
</node>
<node concept="3F2HdR" id="2LeOUT3PgTq" role="3EZMnx">
<property role="2czwfO" value="," />
<ref role="1NtTu8" to="oj0p:$yAo6zIfmb" resolve="entries" />
<node concept="l2Vlx" id="2LeOUT3PgTt" role="2czzBx" />
</node>
......@@ -379,6 +386,7 @@
<property role="3F0ifm" value="{" />
</node>
<node concept="3F2HdR" id="6bPwpXIfZVu" role="3EZMnx">
<property role="2czwfO" value="," />
<ref role="1NtTu8" to="oj0p:1ZoSGYtY0bb" resolve="elems" />
<node concept="l2Vlx" id="6bPwpXIfZVw" role="2czzBx" />
</node>
......@@ -396,7 +404,7 @@
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
<node concept="3F0ifn" id="6bPwpXIfZWD" role="3EZMnx">
<property role="3F0ifm" value="=" />
<property role="3F0ifm" value=":" />
</node>
<node concept="3F1sOY" id="6bPwpXIfZXb" role="3EZMnx">
<ref role="1NtTu8" to="oj0p:1ZoSGYtY0bk" resolve="ty" />
......@@ -408,11 +416,19 @@
<property role="3GE5qa" value="term" />
<ref role="1XX52x" to="oj0p:$yAo6zIfos" resolve="Sel" />
<node concept="3EZMnI" id="2LeOUT3PgPs" role="2wV5jI">
<node concept="3F1sOY" id="2LeOUT3PgPD" role="3EZMnx">
<ref role="1NtTu8" to="oj0p:$yAo6zIfox" resolve="t" />
<node concept="1kIj98" id="5z1OnvsHIJq" role="3EZMnx">
<node concept="3F1sOY" id="5z1OnvsHIJE" role="1kIj9b">
<ref role="1NtTu8" to="oj0p:$yAo6zIfox" resolve="t" />
</node>
</node>
<node concept="3F0ifn" id="2LeOUT3PgPP" role="3EZMnx">
<property role="3F0ifm" value="." />
<node concept="11L4FC" id="5z1OnvsKF5K" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
<node concept="11LMrY" id="5z1OnvsKF5V" role="3F10Kt">
<property role="VOm3f" value="true" />
</node>
</node>
<node concept="3F0A7n" id="2LeOUT3PgQ7" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
......
......@@ -221,6 +221,7 @@
<classNode dependClassName="RecordTypes.editor.App_Editor" />
<classNode dependClassName="RecordTypes.editor.Fun_Editor" />
<classNode dependClassName="RecordTypes.editor.Let_Editor" />
<classNode dependClassName="RecordTypes.editor.Sel_Editor" />
<classNode dependClassName="RecordTypes.editor.Succ_Editor" />
<classNode dependClassName="RecordTypes.editor.Var_Editor" />
<classNode dependClassName="com.mbeddr.mpsutil.grammarcells.runtime.AbstractRule" />
......@@ -1173,7 +1174,10 @@
</dependency>
<dependency className="RecordTypes.editor.RecordType_EditorBuilder_a">
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="jetbrains.mps.editor.runtime.style.StyleAttributes" />
<classNode dependClassName="jetbrains.mps.editor.runtime.style.StyleImpl" />
<classNode dependClassName="jetbrains.mps.lang.editor.cellProviders.RefNodeListHandler" />
<classNode dependClassName="jetbrains.mps.lang.editor.cellProviders.RefNodeListHandlerElementKeyMap" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellActions.CellAction_DeleteNode" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellLayout.CellLayout_Indent" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellMenu.SChildSubstituteInfo" />
......@@ -1186,6 +1190,7 @@
<classNode dependClassName="jetbrains.mps.openapi.editor.cells.DefaultSubstituteInfo" />
<classNode dependClassName="jetbrains.mps.openapi.editor.cells.EditorCell" />
<classNode dependClassName="jetbrains.mps.openapi.editor.menus.transformation.SNodeLocation" />
<classNode dependClassName="jetbrains.mps.openapi.editor.style.Style" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory" />
<classNode dependClassName="org.jetbrains.annotations.NotNull" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SAbstractConcept" />
......@@ -1202,7 +1207,10 @@
</dependency>
<dependency className="RecordTypes.editor.Record_EditorBuilder_a">
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="jetbrains.mps.editor.runtime.style.StyleAttributes" />
<classNode dependClassName="jetbrains.mps.editor.runtime.style.StyleImpl" />
<classNode dependClassName="jetbrains.mps.lang.editor.cellProviders.RefNodeListHandler" />
<classNode dependClassName="jetbrains.mps.lang.editor.cellProviders.RefNodeListHandlerElementKeyMap" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellActions.CellAction_DeleteNode" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellLayout.CellLayout_Indent" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellMenu.SChildSubstituteInfo" />
......@@ -1215,6 +1223,7 @@
<classNode dependClassName="jetbrains.mps.openapi.editor.cells.DefaultSubstituteInfo" />
<classNode dependClassName="jetbrains.mps.openapi.editor.cells.EditorCell" />
<classNode dependClassName="jetbrains.mps.openapi.editor.menus.transformation.SNodeLocation" />
<classNode dependClassName="jetbrains.mps.openapi.editor.style.Style" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory" />
<classNode dependClassName="org.jetbrains.annotations.NotNull" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SAbstractConcept" />
......@@ -1230,18 +1239,25 @@
<classNode extendsClassName="jetbrains.mps.nodeEditor.DefaultNodeEditor" />
</dependency>
<dependency className="RecordTypes.editor.Sel_EditorBuilder_a">
<classNode dependClassName="com.mbeddr.mpsutil.grammarcells.runtime.CellActionWithReadAccess" />
<classNode dependClassName="java.lang.Iterable" />
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="java.lang.String" />
<classNode dependClassName="java.util.Objects" />
<classNode dependClassName="jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes" />
<classNode dependClassName="jetbrains.mps.editor.runtime.impl.cellActions.CellAction_DeleteSPropertyOrNode" />
<classNode dependClassName="jetbrains.mps.editor.runtime.impl.cellActions.CellAction_DeleteSmart" />
<classNode dependClassName="jetbrains.mps.editor.runtime.selection.SelectionUtil" />
<classNode dependClassName="jetbrains.mps.editor.runtime.style.StyleAttributes" />
<classNode dependClassName="jetbrains.mps.editor.runtime.style.StyleImpl" />
<classNode dependClassName="jetbrains.mps.internal.collections.runtime.IWhereFilter" />
<classNode dependClassName="jetbrains.mps.internal.collections.runtime.Sequence" />
<classNode dependClassName="jetbrains.mps.lang.core.behavior.PropertyAttribute__BehaviorDescriptor" />
<classNode dependClassName="jetbrains.mps.lang.editor.cellProviders.SingleRoleCellProvider" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.AttributeOperations" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.IAttributeDescriptor" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SConceptOperations" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations" />
<classNode dependClassName="jetbrains.mps.nodeEditor.EditorManager" />
<classNode dependClassName="jetbrains.mps.nodeEditor.cellActions.CellAction_DeleteNode" />
......@@ -1259,9 +1275,12 @@
<classNode dependClassName="jetbrains.mps.openapi.editor.cells.EditorCell" />
<classNode dependClassName="jetbrains.mps.openapi.editor.menus.transformation.SNodeLocation" />
<classNode dependClassName="jetbrains.mps.openapi.editor.menus.transformation.SPropertyInfo" />
<classNode dependClassName="jetbrains.mps.openapi.editor.selection.SelectionManager" />
<classNode dependClassName="jetbrains.mps.openapi.editor.style.Style" />
<classNode dependClassName="jetbrains.mps.openapi.editor.update.AttributeKind" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory" />
<classNode dependClassName="org.jetbrains.annotations.NotNull" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SAbstractConcept" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SContainmentLink" />
<classNode dependClassName="org.jetbrains.mps.openapi.language.SProperty" />
<classNode dependClassName="org.jetbrains.mps.openapi.model.SNode" />
......
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="35pso6j1kl6urhfqpnrcsjpfzrcpdo2">
<product version="3" modelHash="bi29ybukn2ip0rb4js6vle2pe785rni">
<files names="Add_Editor.java:Add_EditorBuilder_a.java:Anno_Editor.java:Anno_EditorBuilder_a.java:App_Editor.java:App_EditorBuilder_a.java:EditorAspectDescriptorImpl.java:Fun_Editor.java:Fun_EditorBuilder_a.java:GrammarActionsDescriptor.java:GrammarCellsSubstituteMenu_Add.java:GrammarCellsSubstituteMenu_Anno.java:GrammarCellsSubstituteMenu_App.java:GrammarCellsSubstituteMenu_Fun.java:GrammarCellsSubstituteMenu_IModuleElem.java:GrammarCellsSubstituteMenu_Lam.java:GrammarCellsSubstituteMenu_Let.java:GrammarCellsSubstituteMenu_Module.java:GrammarCellsSubstituteMenu_ModuleElemDef.java:GrammarCellsSubstituteMenu_ModuleElemEmpty.java:GrammarCellsSubstituteMenu_ModuleImport.java:GrammarCellsSubstituteMenu_Mult.java:GrammarCellsSubstituteMenu_Nat.java:GrammarCellsSubstituteMenu_ParensTerm.java:GrammarCellsSubstituteMenu_ParensType.java:GrammarCellsSubstituteMenu_Record.java:GrammarCellsSubstituteMenu_RecordEntry.java:GrammarCellsSubstituteMenu_RecordType.java:GrammarCellsSubstituteMenu_RecordTypeEntry.java:GrammarCellsSubstituteMenu_Sel.java:GrammarCellsSubstituteMenu_Succ.java:GrammarCellsSubstituteMenu_Term.java:GrammarCellsSubstituteMenu_Type.java:GrammarCellsSubstituteMenu_Var.java:GrammarCellsSubstituteMenu_Zero.java:Lam_Editor.java:Lam_EditorBuilder_a.java:Let_Editor.java:Let_EditorBuilder_a.java:ModuleElemDef_Editor.java:ModuleElemDef_EditorBuilder_a.java:ModuleElemEmpty_SubstituteMenu.java:ModuleImport_Editor.java:ModuleImport_EditorBuilder_a.java:Module_Editor.java:Module_EditorBuilder_a.java:Mult_Editor.java:Mult_EditorBuilder_a.java:Nat_Editor.java:Nat_EditorBuilder_a.java:ParensTerm_Editor.java:ParensTerm_EditorBuilder_a.java:ParensType_Editor.java:ParensType_EditorBuilder_a.java:RecordEntry_Editor.java:RecordEntry_EditorBuilder_a.java:RecordTypeEntry_Editor.java:RecordTypeEntry_EditorBuilder_a.java:RecordType_Editor.java:RecordType_EditorBuilder_a.java:Record_Editor.java:Record_EditorBuilder_a.java:Sel_Editor.java:Sel_EditorBuilder_a.java:Succ_Editor.java:Succ_EditorBuilder_a.java:Var_Editor.java:Var_EditorBuilder_a.java:Zero_Editor.java:Zero_EditorBuilder_a.java:template_GrammarCellsSideTransformationsMenu.java" />
</product>
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="by0f87re721kkzsjnmtn820lv99sodk">
<product version="3" modelHash="ado8p3v5lho6geh9jsa2b3uug0b5snv">
<files names="Language.java" />
</product>
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="-b22ohtir1kpa9479syiyvypr11obxj2">
<product version="3" modelHash="-2ybac4kskvya9i8uqix4j9z3vlctrer">
<files names="ConceptPresentationAspectImpl.java:LanguageConceptSwitch.java:StructureAspectDescriptor.java" />
</product>
......@@ -713,6 +713,78 @@ public class GrammarActionsDescriptor extends AbstractGrammarActionDescriptor im
}).toListSequence();
}
}.query()));
ListSequence.fromList(result).addSequence(Sequence.fromIterable(new Object() {
public Iterable<SubstituteMenuItem> query() {
List<SubstituteMenuItem> result = ListSequence.fromList(new ArrayList<SubstituteMenuItem>());
_context.getEditorMenuTrace().pushTraceInfo();
_context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase("grammar.wrap in " + "Sel", new SNodePointer("r:6c4d09db-8a4c-40f2-8fdb-950cf932417a(RecordTypes.editor)", "6395623258577103834")));
try {
if (SConceptOperations.isExactly(SNodeOperations.asSConcept(expectedOutputConceptExactly), MetaAdapterFactory.getConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x9229981a3b8f61cL, "RecordTypes.structure.Sel"))) {
final SAbstractConcept wrappedConcept = MetaAdapterFactory.getInterfaceConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb92d1L, "RecordTypes.structure.Term");
for (SConcept subconcept : ListSequence.fromList(GrammarCellsUtil.getVisibleSubconceptsNonAbstract(MetaAdapterFactory.getConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x9229981a3b8f61cL, "RecordTypes.structure.Sel"), _context.getModel(), Sel_Editor.class, _context.getEditorContext()))) {
final SConcept outputConcept = ((SConcept) subconcept);
final SAbstractConcept expectedOutputConcept = GrammarCellsUtil.getExpectedOutputConcept(_context, expectedOutputConceptExactly);
boolean wrapRequired = !(SConceptOperations.isSubConceptOf(SNodeOperations.asSConcept(wrappedConcept), SNodeOperations.asSConcept(expectedOutputConcept)));
if (SConceptOperations.isSubConceptOf(SNodeOperations.asSConcept(outputConcept), SNodeOperations.asSConcept(expectedOutputConcept)) && wrapRequired) {
boolean isApplicable = GrammarCellsUtil.canBeChild(subconcept, _context);
if (isApplicable) {
List<SubstituteMenuItem> actions = _context.withLink(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x9229981a3b8f61cL, 0x9229981a3b8f621L, "t")).createItems(new DefaultSubstituteMenuLookup(LanguageRegistry.getInstance(_context.getEditorContext().getRepository()), wrappedConcept));
List<SubstituteMenuItem> wrappedActions = ListSequence.fromList(actions).where(new IWhereFilter<SubstituteMenuItem>() {
public boolean accept(SubstituteMenuItem it) {
boolean isApplicable = true;
final SAbstractConcept wrappedConcept = it.getOutputConcept();
if (SConceptOperations.isSubConceptOf(SNodeOperations.asSConcept(wrappedConcept), SNodeOperations.asSConcept(expectedOutputConcept))) {
return false;
}
return isApplicable;
}
}).select(new ISelector<SubstituteMenuItem, SubstituteMenuItem>() {
public SubstituteMenuItem select(SubstituteMenuItem it) {
SubstituteMenuItem wrapper = new SubstituteMenuItemWrapper(it) {
private SNode wrappedNode;
@Override
public SNode createNode(@NotNull String pattern) {
SNode nodeToWrap = super.createNode(pattern);
wrappedNode = nodeToWrap;
// use setupNode after setting wrapped element to allow access to the wrapped element in node factories
SNode wrapper = SConceptOperations.createNewNode(SNodeOperations.asInstanceConcept(outputConcept));
SLinkOperations.setTarget(wrapper, MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x9229981a3b8f61cL, 0x9229981a3b8f621L, "t"), SNodeOperations.cast(nodeToWrap, MetaAdapterFactory.getInterfaceConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb92d1L, "RecordTypes.structure.Term")));
NodeFactoryManager.setupNode(outputConcept, wrapper, _context.getCurrentTargetNode(), _context.getParentNode(), _context.getModel());
return wrapper;
}
@Override
public SAbstractConcept getOutputConcept() {
return outputConcept;
}
@Override
public void select(@NotNull SNode createdNode, @NotNull String pattern) {
GrammarCellsSubstituteMenuItem.select(_context.getEditorContext().getEditorComponent(), createdNode);
}
};
return wrapper;
}
}).toListSequence();
ListSequence.fromList(result).addSequence(ListSequence.fromList(wrappedActions));
}
}
}
}
} finally {
_context.getEditorMenuTrace().popTraceInfo();
}
return ListSequence.fromList(result).where(new IWhereFilter<SubstituteMenuItem>() {
public boolean accept(SubstituteMenuItem it) {
return it != null;
}
}).toListSequence();
}
}.query()));
} finally {
_context.getEditorMenuTrace().popTraceInfo();
}
......@@ -1643,6 +1715,94 @@ public class GrammarActionsDescriptor extends AbstractGrammarActionDescriptor im
}.query(_context)));
}
}
{
boolean sideEnabled = false;
sideEnabled |= _context.getMenuLocation() == MenuLocations.LEFT_SIDE_TRANSFORM;
sideEnabled |= _context.getMenuLocation() == MenuLocations.RIGHT_SIDE_TRANSFORM;
if (sideEnabled) {
ListSequence.fromList(result).addSequence(Sequence.fromIterable(new Object() {
public Iterable<TransformationMenuItem> query(final TransformationMenuContext _context) {
List<TransformationMenuItem> result = ListSequence.fromList(new ArrayList<TransformationMenuItem>());
_context.getEditorMenuTrace().pushTraceInfo();
_context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase("grammar.wrap in " + "Sel", new SNodePointer("r:6c4d09db-8a4c-40f2-8fdb-950cf932417a(RecordTypes.editor)", "6395623258577103834")));
try {
if (_context.getMenuLocation() == MenuLocations.RIGHT_SIDE_TRANSFORM) {
final SNode sourceNode = new Parser(_context.getModel()).isEndOf(_context.getNode(), _context.getMenuLocation() == MenuLocations.LEFT_SIDE_TRANSFORM, MetaAdapterFactory.getInterfaceConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb92d1L, "RecordTypes.structure.Term"), null);
if (sourceNode != null) {
final SAbstractConcept sourceNodeConcept = SNodeOperations.getConcept(sourceNode);
SContainmentLink link = sourceNode.getContainmentLink();
SAbstractConcept expectedConcept = (link == null ? null : link.getTargetConcept());
for (final SAbstractConcept subconcept : GrammarCellsUtil.getVisibleSubconceptsNonAbstract(MetaAdapterFactory.getConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x9229981a3b8f61cL, "RecordTypes.structure.Sel"), _context.getModel(), Sel_Editor.class, _context.getEditorContext())) {
boolean wrapperAllowed = expectedConcept == null || SConceptOperations.isSubConceptOf(SNodeOperations.asSConcept(subconcept), SNodeOperations.asSConcept(expectedConcept));
if (wrapperAllowed) {
final Iterable<String> matchingText = Sequence.<String>singleton(".");
if (Sequence.fromIterable(matchingText).isNotEmpty()) {
boolean sideTransformationEnabled = ModelConstraints.canBeParent(SNodeOperations.getParent(sourceNode), subconcept, sourceNode.getContainmentLink(), null);
sideTransformationEnabled &= ModelConstraints.canBeAncestor(SNodeOperations.getParent(sourceNode), subconcept, sourceNode.getContainmentLink(), null);
sideTransformationEnabled &= ModelConstraints.canBeChild(SNodeOperations.getParent(sourceNode), subconcept, sourceNode.getContainmentLink(), null);
if (sideTransformationEnabled) {
ListSequence.fromList(result).addSequence(Sequence.fromIterable(new MultiTextActionItem(matchingText, _context) {
public String getDescriptionText(String string) {
return NodePresentationUtil.descriptionText(subconcept);
}
@Override
public void execute(@NotNull String pattern) {
doSubstitute(_context.getEditorContext(), pattern);
}
protected SNode doSubstitute(@Nullable EditorContext editorContext, String pattern) {
String matchingText = getMatchingText(pattern);
SNode wrapper = SNodeOperations.cast(SNodeFactoryOperations.createNewNode(subconcept, null), MetaAdapterFactory.getConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x9229981a3b8f61cL, "RecordTypes.structure.Sel"));
SNodeOperations.replaceWithAnother(sourceNode, wrapper);
SLinkOperations.setTarget(wrapper, MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x9229981a3b8f61cL, 0x9229981a3b8f621L, "t"), SNodeOperations.cast(sourceNode, MetaAdapterFactory.getInterfaceConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb92d1L, "RecordTypes.structure.Term")));
SNode newChild = ListSequence.fromList(SNodeOperations.getChildren(wrapper)).findFirst(new IWhereFilter<SNode>() {
public boolean accept(SNode it) {
return it != sourceNode;
}
});
editorContext.flushEvents();
if (newChild == null) {
GrammarCellsUtil.selectCellWithText(editorContext, wrapper, matchingText);
} else {
SelectionUtil.selectNode(editorContext, newChild);