[TxMt] [REVIEW] JavaScript

Thomas Aylott - subtleGradient textmate at subtleGradient.com
Mon Dec 31 17:41:08 UTC 2007


I follow up withyou soon. Everyone here is all sick :(

Thanks for proving that a few people do care ;)

Thomas Aylott [SubtleGradient] from iPhone

On Dec 30, 2007, at 1:56 AM, Daniel Stockman  
<daniel.stockman at gmail.com> wrote:

> (forgive my noobishness, I had to re-join the list after a long  
> period of inattention, and cannot respond directly to the original  
> message, from Thomas Aylott)
>> Those few of you who care, please let me know what I need to do  
>> before I can replace the core bundles with these guys.
>
> I was really excited to see activity related to JavaScript in / 
> Review, and I immediately switched my checkouts to track the  
> JavaScript and Prototype bundles in Review. The irony of someone who  
> follows the commit log feed yet had to re-subscribe to the mailing  
> list is exquisite, I know.
>
> I've been using them for the past few weeks with few (if any)  
> noticeable problems, using the Prototype bundle as my chosen grammar  
> for *.js. That is, until today, when I decided to go poking about  
> the latest Prototype trunk.
>
> The file generated by `rake dist` has _never_ been small, I'll  
> grant, but I don't recall so much chugging and whinging by my 2.2Ghz  
> MacBook, or seconds-long gaps of white syntax colorless-ness when  
> switching tabs (a beachball will occasionally pop up for a few  
> seconds, even). My wild shot-in-the-dark hypothesis is that it might  
> be related to the increased number of `include $base` declarations  
> in the "new" grammar. To reiterate, this only occurs on files like  
> the `rake dist`-generated prototype.js, which itself is over 4,000  
> lines of syntactically dense, idiomatic (and often beautiful) JS.
>
> There seems to be a regression in the regex literal highlighting, as  
> it no longer works when the RegExp literal notation is used as a  
> member of an object with any space separating the key's colon  
> delimiter and the literal itself. The literals are colored fine when  
> it begins on the very first character of the line, or when  
> immediately following a parenthesis. Line 275+ of prototype/trunk/ 
> src/selector.js is a perfect example of this regression.
>
> I narrowed down the cause of this anomaly to the 'string.regexp.js'  
> key of the Embedded grammar, specifically the `begin` regexp:
>
>    (?<=[=(:]|^|return)\s*(/)(?![/*+{}?])
>
> The lookbehind seems to be blocking it; when I remove it, the RegExp  
> literals in the object values highlight as intended. This does cause  
> any single `/` to color everything after it as a regexp, but adding  
> an alternate end-of-line anchor ($) to the negative lookahead seemed  
> to fix that. (?![/*+{}?]|$)
>
> There is also an oddity with the folding markers, which appears to  
> be related to the block comment syntax. Line 135 of prototype/trunk/ 
> src/ajax.js:
>
>      'Accept': 'text/javascript, text/html, application/xml, text/ 
> xml, */*'
>
> Again, inside an object literal, but this time the "*/*" seems to  
> make the folding parser think "I need to start a new fold here!",  
> when in fact it is the last member of the object, and should have no  
> folding marker whatsoever. Take away the second * (thus turning it  
> into a block comment closing delimiter), and the folding marker  
> disappears. I was unable to parse the gargantuan folding regexps in  
> the grammar clearly enough to suggest a solution.
>> The Review Prototype bundle is NOT upgraded for the latest version  
>> of prototype.
> I'd be willing to pitch in on this effort, if you (or whomever  
> "owns" the bundle) would like. I've done a bit of local hacking on  
> various bundles, and I can certainly provide examples off-list. The  
> Prototype grammar itself could use a little cleaning up, I'm sure.
>
> Big thanks to all the bundle contributors for continuing to make  
> TextMate great! (Oh, and Allan, too :D)
>
> ~ Daniel Stockman
> evocateur.org
>
> ______________________________________________________________________
> For new threads USE THIS: textmate at lists.macromates.com
> (threading gets destroyed and the universe will collapse if you don't)
> http://lists.macromates.com/mailman/listinfo/textmate



More information about the textmate mailing list