Hello!
A couple of days ago my Emmet Plugin stopped working.
This might not seem like a big deal, but I love Emmet, and so do many of my web-dev cohorts.
I traced the error down to explicit blacklisting of this plugin in TextMate.
https://github.com/textmate/textmate/commit/4b19e404403c0d237578ecac583796d9... https://github.com/textmate/textmate/commit/81d2586ffcfc9385d9bb362febda7c7e...
This blacklisting is intentional, and rational. Apparently users have had the plugin installed and its been crashing for years. I’m not sure if this is because its crashing in use, or if its because the plugin was installed, but doesn’t support the OS and therefore it crashes in the background without issue, or if there are other crashes.
What I do know is that the plugin isn’t really being updated, its sort of frozen in time, but it does work if you use @pingjiang’s custom built binary from https://github.com/emmetio/Emmet.tmplugin/issues/10. @pingjiang Had gone in and updated the plugin, I’m not exactly sure what was required for him to do, but it was at least partially just a recompilation on a newer machine (updating the release targets).
Is there any way to know if this custom built plugin is causing crash reports, or is it just the original?
Given that it takes some effort to get a working version, I totally get if this plugin remains blacklisted *but *I’d like to see a path to Emmet becoming easy to get working on TextMate sometime soon.
What I’ve discovered so far is that the blacklisting uses "contains" rather than "equals" so updating the Bundle identifier to 'io.emmet.EmmetTextmate2' was not enough as it still contained the original "io.emmet.EmmetTextmate" so in my new bundle i’m using "io.emmet.EmmetTM2" instead. Could this be changed to equals?
My modified plugin is available here;
https://github.com/loadedsith/emmet-objc/releases/tag/v10.11.1 or more directly https://github.com/loadedsith/emmet-objc/releases/download/v10.11.1/Emmet.tm...
My change; https://github.com/loadedsith/emmet-objc/commit/4791f1f6b5f5bc286754fed5f9b5...
And the original supporting changes; https://github.com/pingjiang/emmet-objc/commit/d58f30ce40f2a7c07f3af0d4e4b82...
Thanks,
Graham Heath
Ah, so that's Emmet that does this, I saw it in action in Sublime but didn't realise what was doing it.
Plugin doesn't work for me, installed fine, but stops bundles loading and after quiting I got a warning saying it had stopped it from exiting properly. Shame, as I'd love this functionality. Seems like it works fine in Sublime, can we copy their implementation? Or could it be migrated to a bundle somehow?
On Fri, 15 Jul 2016 at 00:39 Graham Heath graham.p.heath@gmail.com wrote:
Hello!
A couple of days ago my Emmet Plugin stopped working.
This might not seem like a big deal, but I love Emmet, and so do many of my web-dev cohorts.
I traced the error down to explicit blacklisting of this plugin in TextMate.
https://github.com/textmate/textmate/commit/4b19e404403c0d237578ecac583796d9...
https://github.com/textmate/textmate/commit/81d2586ffcfc9385d9bb362febda7c7e...
This blacklisting is intentional, and rational. Apparently users have had the plugin installed and its been crashing for years. I’m not sure if this is because its crashing in use, or if its because the plugin was installed, but doesn’t support the OS and therefore it crashes in the background without issue, or if there are other crashes.
What I do know is that the plugin isn’t really being updated, its sort of frozen in time, but it does work if you use @pingjiang’s custom built binary from https://github.com/emmetio/Emmet.tmplugin/issues/10. @pingjiang Had gone in and updated the plugin, I’m not exactly sure what was required for him to do, but it was at least partially just a recompilation on a newer machine (updating the release targets).
Is there any way to know if this custom built plugin is causing crash reports, or is it just the original?
Given that it takes some effort to get a working version, I totally get if this plugin remains blacklisted *but *I’d like to see a path to Emmet becoming easy to get working on TextMate sometime soon.
What I’ve discovered so far is that the blacklisting uses "contains" rather than "equals" so updating the Bundle identifier to 'io.emmet.EmmetTextmate2' was not enough as it still contained the original "io.emmet.EmmetTextmate" so in my new bundle i’m using "io.emmet.EmmetTM2" instead. Could this be changed to equals?
My modified plugin is available here;
https://github.com/loadedsith/emmet-objc/releases/tag/v10.11.1 or more directly
https://github.com/loadedsith/emmet-objc/releases/download/v10.11.1/Emmet.tm...
My change; https://github.com/loadedsith/emmet-objc/commit/4791f1f6b5f5bc286754fed5f9b5...
And the original supporting changes; https://github.com/pingjiang/emmet-objc/commit/d58f30ce40f2a7c07f3af0d4e4b82...
Thanks,
Graham Heath
textmate mailing list textmate@lists.macromates.com http://lists.macromates.com/listinfo/textmate
Seems like it works fine in Sublime, can we copy their implementation? Or could it be migrated to a bundle somehow?
Plugin's author said that TM does not have the needed API to make it work the way it works in Sublime Text. It kind of works now but either breaks the "tab" chaining functionality (that I explained here https://github.com/emmetio/Emmet.tmplugin/issues/5 ) or requires you to use a keyboard shortcut to expand the abbreviations.
The absence of the API is probably the main reason why it was abandoned.
I've been successfully using Zen Coding for so many years now https://github.com/pepelsbey/zen-coding . It does not allow expanding CSS selectors like Emmet does, but having snippets for all the CSS rules and HTML elements is enough. I updated the bundles by adding support for SASS and Stylus syntaxes though.
On 14 Jul 2016, at 22:39, Graham Heath wrote:
This might not seem like a big deal, but I love Emmet, and so do many of my web-dev cohorts.
I didn’t know this was actually working for anybody.
I’m not sure if this is because its crashing in use, or if its because the plugin was installed, but doesn’t support the OS and therefore it crashes in the background without issue, or if there are other crashes.
It crashes during load with `EXC_BAD_ACCESS`, here’s an excerpt from the crash:
io.emmet.EmmetTextmate +[Emmet sharedInstance] + 47 io.emmet.EmmetTextmate -[Emmet init] + 87 io.emmet.EmmetTextmate -[Emmet setupJSContext] + 233 com.apple.CoreFoundation -[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 217 ⋮ com.apple.JavaScriptCore WTFCrash + 62
Is there any way to know if this custom built plugin is causing crash reports, or is it just the original?
I extracted the UUID from the updated binary and searched for “load plug-in” crash reports with this UUID, and did not find any.
So it does not appear that this version has caused any crashes.
What I’ve discovered so far is that the blacklisting uses "contains" rather than "equals" so updating the Bundle identifier to 'io.emmet.EmmetTextmate2' was not enough
You tested this?
The blacklist is an array, and the check is if the _array_ contains the bundle identifier. So it should have worked.
It’s worth mentioning that the blacklist can be changed by updating user defaults, so anyone with the updated/working Emmet plug-in can also run:
defaults write com.macromates.TextMate.preview disabledPlugIns -array
But it would be best to give the working plug-in a new bundle identifier and have people use that instead. I can add a release notes entry about this, if there is something “official”.
@George
I do think we could find a path forward, perhaps leveraging the sublime bundle, as I don’t think Emmet proper is going to help. I guess its not the worst plugin to try and build, at least there’s references :)
@Igor
I thought zen-coding had evolved into Emmet. I don’t care much for tab expansion, I’m quite happy with alt + e, so thats not an issue for me. I wonder if we could convince them of the user base’s existence?
@Allan
It works for me, has been for a while. I don’t know another TextMate user that also uses Emmet. I suddenly feel very alone here. Lol.
Basically, when I installed TextMate and Emmet would not install, I Googled my issue and found that build by pingyang@github. So I guess there’s at least a few of us.
I’m not sure from that crash log if emmet is in use at the time or not...
I do have the latest TextMate working with Emmet, via that build which I downloaded, updated the target architecture and changed the Bundle Id on. The first bundle id I tried was 'io.emmet.EmmetTextmate2', and TextMate rejected it with the "disabled plugin" error message. I can try again this weekend, my Xcode-foo is not very good.
I’ve created a pull request on the emmet-objc github repo, to start a conversation if nothing else. Alas pingyang’s original pull request is still sitting in their queue https://github.com/emmetio/emmet-objc/pulls. I doubt I’ll hear from them, and so I don’t think there will be anything official.
I’d be interested to know if "io.emmet.EmmetTM2" is showing up in your crash reports.
I’ll add the defaults command to my issue thread, just incase.
Thanks,
Graham Heath
On July 15, 2016 at 1:30:14 AM, Allan Odgaard (mailinglist@textmate.org) wrote:
On 14 Jul 2016, at 22:39, Graham Heath wrote:
This might not seem like a big deal, but I love Emmet, and so do many of my web-dev cohorts.
I didn’t know this was actually working for anybody.
I’m not sure if this is because its crashing in use, or if its because the plugin was installed, but doesn’t support the OS and therefore it crashes in the background without issue, or if there are other crashes.
It crashes during load with EXC_BAD_ACCESS, here’s an excerpt from the crash:
io.emmet.EmmetTextmate +[Emmet sharedInstance] + 47 io.emmet.EmmetTextmate -[Emmet init] + 87 io.emmet.EmmetTextmate -[Emmet setupJSContext] + 233 com.apple.CoreFoundation -[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 217 ⋮ com.apple.JavaScriptCore WTFCrash + 62
Is there any way to know if this custom built plugin is causing crash reports, or is it just the original?
I extracted the UUID from the updated binary and searched for “load plug-in” crash reports with this UUID, and did not find any.
So it does not appear that this version has caused any crashes.
What I’ve discovered so far is that the blacklisting uses "contains" rather than "equals" so updating the Bundle identifier to 'io.emmet.EmmetTextmate2' was not enough
You tested this?
The blacklist is an array, and the check is if the *array* contains the bundle identifier. So it should have worked.
It’s worth mentioning that the blacklist can be changed by updating user defaults, so anyone with the updated/working Emmet plug-in can also run:
defaults write com.macromates.TextMate.preview disabledPlugIns -array
But it would be best to give the working plug-in a new bundle identifier and have people use that instead. I can add a release notes entry about this, if there is something “official”.
_______________________________________________ textmate mailing list textmate@lists.macromates.com http://lists.macromates.com/listinfo/textmate
I’ve created a pull request on the emmet-objc github repo, to start a conversation if nothing else. Alas pingyang’s original pull request is still sitting in their queue https://github.com/emmetio/emmet-objc/pulls . I doubt I’ll hear from them, and so I don’t think there will be anything official.
There's just a single developer that is working on Emmet. You can contact him on serge.che@gmail.com or https://twitter.com/chikuyonok . Good luck.
sergeche commented (yesterday);
I’m going to release a new version of plugin soon. The plugin is written from scratch for new OSX version and currently powers Coda plugin: http://emmet.io/download/coda/
https://github.com/emmetio/Emmet.tmplugin/issues/10
:-)
Thanks,
Graham Heath
On July 15, 2016 at 11:56:32 AM, Igor Kozlov (me@igorkozlov.me) wrote:
I’ve created a pull request on the emmet-objc github repo, to start a conversation if nothing else. Alas pingyang’s original pull request is still sitting in their queue https://github.com/emmetio/emmet-objc/pulls. I doubt I’ll hear from them, and so I don’t think there will be anything official.
There's just a single developer that is working on Emmet. You can contact him on serge.che@gmail.com or https://twitter.com/chikuyonok . Good luck.
_______________________________________________ textmate mailing list textmate@lists.macromates.com http://lists.macromates.com/listinfo/textmate