<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Can someone perhaps explain why does Emmet have to be a plugin?</div><div dir="ltr">I'm not an expert, but Emmet in its core is JS library, and plugin seems a bit of overkill.</div><div dir="ltr">Besides, it's menu is placed at the top level, which, IMHO is unnecessary since it only covers HTML/CSS scope.</div><div dir="ltr">My approach is far from perfect, but I think it's simpler and easier to maintain,</div><div dir="ltr"><br></div><div>z</div><div><br></div><div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Jul 13, 2019 at 5:41 PM Graham Heath <<a href="mailto:graham.p.heath@gmail.com" target="_blank">graham.p.heath@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><u></u>




<div>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">@feek; Fascinating, thats something to be excited about!</p>

<p dir="auto">@Zdenko; Thanks, thats amazing :)</p>

<p dir="auto">@allan; I'm running out the door, but if you like I'll put a formal pr together (if only for review).</p>

<p dir="auto">To see this error I had to make some changes in the source.</p>

<p dir="auto">In TMPlugInController, line 90 (original);</p>

<pre style="background-color:rgb(247,247,247);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;margin-left:15px;margin-right:15px;max-width:90vw;overflow-x:auto;padding:5px" bgcolor="#F7F7F7"><code style="background-color:rgb(247,247,247);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;margin:0px;padding:0px" bgcolor="#F7F7F7">if([bundle load])
</code></pre>

<p dir="auto">becomes:</p>

<pre style="background-color:rgb(247,247,247);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;margin-left:15px;margin-right:15px;max-width:90vw;overflow-x:auto;padding:5px" bgcolor="#F7F7F7"><code style="background-color:rgb(247,247,247);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;margin:0px;padding:0px" bgcolor="#F7F7F7">NSError *bundleLoadError;

if([bundle loadAndReturnError:&bundleLoadError])
</code></pre>

<p dir="auto">and then down on 104 (original);</p>

<pre style="background-color:rgb(247,247,247);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;margin-left:15px;margin-right:15px;max-width:90vw;overflow-x:auto;padding:5px" bgcolor="#F7F7F7"><code style="background-color:rgb(247,247,247);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;margin:0px;padding:0px" bgcolor="#F7F7F7">NSLog(@"Failed to load plug-in: %@, path %@", name ?: identifier, aPath);
</code></pre>

<p dir="auto">becomes</p>

<pre style="background-color:rgb(247,247,247);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;margin-left:15px;margin-right:15px;max-width:90vw;overflow-x:auto;padding:5px" bgcolor="#F7F7F7"><code style="background-color:rgb(247,247,247);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;margin:0px;padding:0px" bgcolor="#F7F7F7">NSLog(@"Failed to load plug-in: %@, path %@. Error %@", name ?: identifier, aPath, bundleLoadError);
</code></pre>

<p dir="auto">Thanks,<br>
Graham</p>

<p dir="auto">On 13 Jul 2019, at 3:41, Allan Odgaard wrote:</p>

</div>
<div style="white-space:normal"></div>
<blockquote style="border-left-width:2px;border-left-style:solid;border-left-color:rgb(119,119,119);color:rgb(119,119,119);margin:0px 0px 5px;padding-left:5px"><div id="gmail-m_3392075143343275756gmail-m_-80533063386895012018DAE844C-2623-4001-9516-F5545502EF92">

<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 12 Jul 2019, at 22:34, Graham Heath wrote:</p>

</div>
<div style="white-space:normal"><blockquote style="border-left-width:2px;border-left-style:solid;border-left-color:rgb(119,119,119);color:rgb(119,119,119);margin:0px 0px 5px;padding-left:5px"><p dir="auto">I am also seeing the same error for Contents/PlugIns/Dialog2.tmplugin and<br>
Dialog.tmplugin.</p>
</blockquote></div>
<div style="white-space:normal">

<p dir="auto">Where are you seeing this error?</p>

<pre style="background-color:rgb(247,247,247);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;margin-left:15px;margin-right:15px;max-width:90vw;overflow-x:auto;padding:5px" bgcolor="#F7F7F7"><code style="background-color:rgb(247,247,247);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;margin:0px;padding:0px" bgcolor="#F7F7F7">% codesign -vv TextMate.app/Contents/PlugIns/Dialog.tmplugin
TextMate.app/Contents/PlugIns/Dialog.tmplugin: valid on disk
TextMate.app/Contents/PlugIns/Dialog.tmplugin: satisfies its Designated Requirement
</code></pre>

<p dir="auto">And TextMate itself (which embeds the plug-ins) should be notarized:</p>

<pre style="background-color:rgb(247,247,247);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;margin-left:15px;margin-right:15px;max-width:90vw;overflow-x:auto;padding:5px" bgcolor="#F7F7F7"><code style="background-color:rgb(247,247,247);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;margin:0px;padding:0px" bgcolor="#F7F7F7">% spctl -a -v TextMate.app
TextMate.app: accepted
source=Notarized Developer ID
</code></pre>

</div>
<div style="white-space:normal"><blockquote style="border-left-width:2px;border-left-style:solid;border-left-color:rgb(119,119,119);color:rgb(119,119,119);margin:0px 0px 5px;padding-left:5px"><p dir="auto">I tried signing the plugin, but it was already signed.<br>
<br>
$ codesign -s "[...]" EmmetTextMate-1.tmplugin</p>
</blockquote></div>
<div style="white-space:normal">

<p dir="auto">The recent change was the switch to the hardened runtime, this is done by adding <code style="background-color:rgb(247,247,247);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;margin:0px;padding:0px 0.4em" bgcolor="#F7F7F7">--options runtime</code> to <code style="background-color:rgb(247,247,247);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;margin:0px;padding:0px 0.4em" bgcolor="#F7F7F7">codesign</code>.</p>

<p dir="auto">So try re-sign it with that option.</p>

<p dir="auto">However, when enabling the hardened runtime the plug-in may need entitlements, for example if it is sending AppleEvents. But lacking entitlements shouldn’t cause a problem loading the plug-in, it will just be a runtime failure from <code style="background-color:rgb(247,247,247);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;margin:0px;padding:0px 0.4em" bgcolor="#F7F7F7">AESend</code>.</p>
</div>
</div></div></blockquote>
<div style="white-space:normal">
<blockquote style="border-left-width:2px;border-left-style:solid;border-left-color:rgb(119,119,119);color:rgb(119,119,119);margin:0px 0px 5px;padding-left:5px">
</blockquote><blockquote style="border-left-width:2px;border-left-style:solid;border-left-color:rgb(119,119,119);color:rgb(119,119,119);margin:0px 0px 5px;padding-left:5px"><p dir="auto">_______________________________________________<br>
textmate mailing list<br>
<a href="mailto:textmate@lists.macromates.com" target="_blank">textmate@lists.macromates.com</a><br>
<a href="https://lists.macromates.com/listinfo/textmate" style="color:rgb(119,119,119)" target="_blank">https://lists.macromates.com/listinfo/textmate</a></p>
</blockquote></div>
<div style="white-space:normal">
</div>
</div>
</div>

<br>
_______________________________________________<br>
textmate mailing list<br>
<a href="mailto:textmate@lists.macromates.com" target="_blank">textmate@lists.macromates.com</a><br>
<a href="https://lists.macromates.com/listinfo/textmate" rel="noreferrer" target="_blank">https://lists.macromates.com/listinfo/textmate</a></blockquote></div>
</div></div>