Following today's release of BBEdit 8.1 text editor, which among its new features is integrated Subversion support (it had CVS for awhile already), I have been compelled to write the creators with my first feature request.
The message I sent is quoted verbatim below.
In short, I requested Perl 6 specific support and gave them some pointers on what I thought were short term priorities as well as info or suggestions to make their job the easiest (resulting in soonest delivery). This was prompted largely by that the existing (and otherwise very useful) Perl 5 syntax coloring makes a mess (runaway string quote) when encountering such things as 's:g///' and '$foo //= $bar'.
AFAIK, a lot of Perl 6 developers use Mac OS X, and should benefit from this.
As for users of other environments, I don't know if any other editors already do the right thing with Perl 6 syntax; if not, I suggest that now is a good time to petition their creators for this feature and/or add it yourselves.
Right about now is just when we should be getting a large influx of Perl 6 developers, and they might as well have the best possible experience.
Assuming this request is accepted, I will post again when the supporting version is available and/or a roadmap is known.
-- Darren Duncan
Date: Mon, 28 Mar 2005 14:49:47 -0800 To: [EMAIL PROTECTED] From: Darren Duncan <[EMAIL PROTECTED]> Subject: BBEdit 8.1 feature request: Perl 6 syntax coloring Cc: [EMAIL PROTECTED]
To the BareBones support team,
Thanks for the improvements you brought in BBEdit 8.1, such as the Subversion integration. BBEdit is probably the most valuable application that I own, and that I spend the most of my computer time using.
I have a feature request that I hope you can include ASAP, such as by the time BBEdit 8.2 ships, if not sooner (such as for 8.1.1). I am also willing to help you test it.
I request is that you add syntax coloring support for the language Perl 6 (and rename the old support to 'Perl 5'). You can do this incrementally, using Perl 5 as a starting template.
For simplicity, don't worry yet about being able to integrate with a Perl 6 runtime in your !# menu, such as for 'Run' or 'Check Syntax'. The actual editing environment updates are much more important.
You can get the official word here: http://dev.perl.org/perl6/synopsis/
While Perl 6 file names use the same extensions as Perl 5, such as *.pl and *.pm, it should still be possible to auto-detect Perl 6 if a file starts with a 'class' or 'module' keyword, or the likes of 'use v6;' (see Synopsis 01). Otherwise, users can still choose from the Language sub-menu as before.
The most important short term improvements you can make, as I see it, is correct syntax coloring when you do know you are being fed Perl 6, even if it has to be an explicit telling with the Language sub-menu.
Within syntax coloring, a lot of details are easy, such as the 'class' or 'method' being keywords like 'package' or 'sub'.
These details are of the greatest importance due to the runaway-quote effect of not handling them:
1. The bare '//' and '//=' are now operators like '||' and '||=' but that they test for definedness instead of truth (see Synopsis 03, near the top). BBedit 8.1 under Perl 5 currently treats those as the beginnings of a regexp-quote, which messes up large amounts of code just afterwards to look like string contents that aren't. (Support for this should also be added to the Perl 5 language colorer since Perl 5.9 and 5.10 will add those operators too.)
2. You need to stop treating a leading ':' in a regexp/rule declaration as a delimiter, which likewise leads to runaway quoting; eg, the old 's///g' is now 's:g///' (see Synopsis 05).
Such improvements as these will greatly improve my experience in writing Perl 6 with BBEdit.
And I am on the team that is developing Perl 6 itself, which is partly functional now and proceeding at a rapid pace thanks to Pugs ( see http://pugscode.org/ ), with large improvements every week. A lot of other Perl 6 developers are also Mac OS X users, and will be able to use your new features immediately.
Once again, for simplicity, you can make the Perl 6 colorer as a fork of your Perl 5 one, where everything is the same but when explicitly known different.
Thank you in advance for all your hard work.
Please reply asap so I know you received this email.
-- Darren Duncan