<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        So, preamble and postscript would now be regular Strings instead? Sounds good to me, given that they are stored as strings on the server anyway.<div><br></div><div>Please double-check to not upload texts (or their serialized form) to the server.</div><div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div>
                                        <blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 22.11.2021 16:17:43 schrieb christoph.thiede@student.hpi.uni-potsdam.de <christoph.thiede@student.hpi.uni-potsdam.de>:</p><div style="font-family:Arial,Helvetica,sans-serif">
Please give me a short feedback on whether you agree with the idea of this change (PackageInfo scripts are no longer instances of StringHolder). If there is no objection, I will try to merge this into the Trunk after a week or so. :-)<br>
<br>
["stylePackageScripts.png"]<br>
<br>
Best,<br>
Christoph<br>
<br>
<br>
<b>=============== Summary ===============</b><br>
<br>
Change Set:        stylePackageScripts<br>
Date:            22 November 2021<br>
Author:            Christoph Thiede<br>
<br>
This change set enables syntax highlighting for package scripts ({preamble,postscript}{, of removal}). To achieve this, the instance variables in PackageInfo are converted to hold plain strings or texts rather than StringHolders, and the client (Monticello) is reponsible itself for displaying them to the user and storing them back into the package. Note the postscript which converts all PackageInfo instances in the image.<br>
<br>
<b>=============== Postscript ===============</b><br>
<br>
<span style="color: #008080">"Postscript:<br>
Eliminate StringHolder script in PackageInfos"</span><span style="color: #000000"><br>
PackageInfo </span><span style="color: #000080">allSubInstancesDo:</span><span style="color: #000000"> [:</span><span style="color: #000080">packageInfo</span><span style="color: #000000"> </span><span style="color: #808080">|</span><span style="color: #000000"><br>
    </span><span style="color: #000080">#</span><span style="color: #000000">(</span><span style="color: #000080">preamble</span><span style="color: #000000"> </span><span style="color: #000080">postscript</span><span style="color: #000000"> </span><span style="color: #000080">preambleOfRemoval</span><span style="color: #000000"> </span><span style="color: #000080">postscriptOfRemoval</span><span style="color: #000000">) </span><span style="color: #000080">do:</span><span style="color: #000000"> </span><span style="color: #008000">[</span><span style="color: #000000">:</span><span style="color: #000080">sel</span><span style="color: #000000"> </span><span style="color: #808080">|</span><span style="color: #000000"><br>
        </span><span style="color: #800080">(</span><span style="color: #000080">packageInfo</span><span style="color: #000000"> </span><span style="color: #000080">instVarNamed:</span><span style="color: #000000"> </span><span style="color: #000080">sel</span><span style="color: #800080">)</span><span style="color: #000000"> </span><span style="color: #000080">ifNotNil:</span><span style="color: #000000"> </span><span style="color: #800080">[</span><span style="color: #000000">:</span><span style="color: #000080">stringHolder</span><span style="color: #000000"> </span><span style="color: #808080">|</span><span style="color: #000000"><br>
            </span><span style="color: #000080">packageInfo</span><span style="color: #000000"> </span><span style="color: #000080">instVarNamed:</span><span style="color: #000000"> </span><span style="color: #000080">sel</span><span style="color: #000000"> </span><span style="color: #000080">put:</span><span style="color: #000000"> </span><span style="color: #000080">stringHolder</span><span style="color: #000000"> </span><span style="color: #000080">contents</span><span style="color: #800080">]</span><span style="color: #008000">]</span><span style="color: #000000">].</span><br>
<br>
<b>=============== Diff ===============</b><br>
<br>
<b>MCWorkingCopyBrowser>>editLoadScripts {morphic ui} · ct 11/22/2021 16:05 (changed)</b><br>
editLoadScripts<br>
<br>
    | arg |<br>
    self hasWorkingCopy ifFalse: [^self].<br>
    arg := UIManager default<br>
<s><span style="color: #0000FF">-         chooseFrom: #('edit preamble' 'edit postscript' 'edit preambleOfRemoval' 'edit postscriptOfRemoval')<br>
</span></s><span style="color: #FF0000">+         chooseFrom: {'edit preamble' translated. 'edit postscript' translated. 'edit preambleOfRemoval' translated. 'edit postscriptOfRemoval' translated}<br>
</span>        values: #(#preamble #postscript #preambleOfRemoval #postscriptOfRemoval).<br>
<br>
    arg ifNotNil: [<br>
        self editScript: arg].<br>
<br>
<b>MCWorkingCopyBrowser>>editScript: {morphic ui} · ct 11/22/2021 15:59 (changed)</b><br>
editScript: scriptSymbol<br>
<br>
<s><span style="color: #0000FF">- | script |<br>
- script := workingCopy packageInfo perform: scriptSymbol.<br>
- script openLabel: scriptSymbol asString, ' of the Package ', workingCopy package name.<br>
</span></s><span style="color: #FF0000">+     | script |<br>
+     script := workingCopy packageInfo perform: scriptSymbol.<br>
+     Project uiManager<br>
+         edit: script<br>
+         label: ('{1} of the Package {2}' translated format: {scriptSymbol asString capitalized. workingCopy package name})<br>
+         shouldStyle: true<br>
+         accept: [:result | workingCopy packageInfo<br>
+             perform: scriptSymbol asSimpleSetter<br>
+             with: result]</span><br>
<br>
<b>PackageInfo>>isScript:not: {preamble/postscript} · ct 11/22/2021 15:53 (changed)</b><br>
isScript: script not: default<br>
    ^ script notNil<br>
        and: [ | contents |<br>
<s><span style="color: #0000FF">-             contents := script contents asString withBlanksTrimmed.<br>
</span></s><span style="color: #FF0000">+             contents := script asString withBlanksTrimmed.<br>
</span>            contents notEmpty and: [contents ~= default and: [contents ~= 'nil']]]<br>
<br>
<b>PackageInfo>>postscript {preamble/postscript} · ct 11/22/2021 15:53 (changed)</b><br>
postscript<br>
<span style="color: #FF0000">+ <br>
</span>    ^ postscript ifNil: [<br>
<s><span style="color: #0000FF">-         postscript := StringHolder new contents: self postscriptDefault]<br>
</span></s><span style="color: #FF0000">+         postscript := self postscriptDefault]</span><br>
<br>
<b>PackageInfo>>postscript: {preamble/postscript} · ct 11/22/2021 15:57 (changed)</b><br>
postscript: aString<br>
<br>
<s><span style="color: #0000FF">- postscript := StringHolder new contents: aString<br>
</span></s><span style="color: #FF0000">+     postscript := aString</span><br>
<br>
<b>PackageInfo>>postscriptOfRemoval {preamble/postscript} · ct 11/22/2021 15:53 (changed)</b><br>
postscriptOfRemoval<br>
    ^ postscriptOfRemoval ifNil: [<br>
<s><span style="color: #0000FF">-         postscriptOfRemoval := StringHolder new contents: self postscriptOfRemovalDefault]<br>
</span></s><span style="color: #FF0000">+         postscriptOfRemoval := self postscriptOfRemovalDefault]</span><br>
<br>
<b>PackageInfo>>postscriptOfRemoval: {preamble/postscript} · ct 11/22/2021 15:57 (changed)</b><br>
postscriptOfRemoval: aString<br>
<br>
<s><span style="color: #0000FF">- postscriptOfRemoval := StringHolder new contents: aString<br>
</span></s><span style="color: #FF0000">+     postscriptOfRemoval := aString<br>
</span><br>
<br>
<b>PackageInfo>>preamble {preamble/postscript} · ct 11/22/2021 15:54 (changed)</b><br>
preamble<br>
    ^ preamble ifNil: [<br>
<s><span style="color: #0000FF">-         preamble := StringHolder new contents: self preambleDefault]<br>
</span></s><span style="color: #FF0000">+         preamble := self preambleDefault]</span><br>
<br>
<b>PackageInfo>>preamble: {preamble/postscript} · ct 11/22/2021 15:56 (changed)</b><br>
preamble: aString<br>
<br>
<s><span style="color: #0000FF">- preamble := StringHolder new contents: aString<br>
</span></s><span style="color: #FF0000">+     preamble := aString</span><br>
<br>
<b>PackageInfo>>preambleOfRemoval {preamble/postscript} · ct 11/22/2021 15:54 (changed)</b><br>
preambleOfRemoval<br>
    ^ preambleOfRemoval ifNil: [<br>
<s><span style="color: #0000FF">-         preambleOfRemoval := StringHolder new contents: self preambleOfRemovalDefault]<br>
</span></s><span style="color: #FF0000">+         preambleOfRemoval := self preambleOfRemovalDefault]</span><br>
<br>
<b>PackageInfo>>preambleOfRemoval: {preamble/postscript} · ct 11/22/2021 15:56 (changed)</b><br>
preambleOfRemoval: aString<br>
<br>
<s><span style="color: #0000FF">- preambleOfRemoval := StringHolder new contents: aString<br>
</span></s><span style="color: #FF0000">+     preambleOfRemoval := aString</span><br>
["stylePackageScripts.2.cs"]
</div></blockquote></div>