[TxMt] Grammar Questions

Jeremy Whitlock jcscoobyrs at gmail.com
Mon Oct 21 17:27:44 UTC 2013


Hello all,
    I've been cleaning up the JavaScript grammar and as I get started on
this next round of cleanups, I've run into some inconsistencies in the
grammar that have led to the following questions:

* When adding a language specific implementation of a grammar group, like
comment.block for JavaScript, should the name of the group be comment.block
(expected) or comment.block.js (What's there now)?  (I can't tell if I use
the name that corresponds with the root group, comment.block, or if I add
the language name to the end like comment.block.js.)

* Is there a way to have certain grammar features enabled based on the
existence, or lack of, a certain "enabler" in the file?  (For example,
JavaScript has a strict mode to mark extra words as keywords due to
potential plans for supporting them as keywords in the future.  That being
said, if you have "use strict;" in your file, certain keywords should be
scoped that wouldn't be otherwise *and* variable names with those keywords
should be marked as invalid.)

* Why isn't 'null' treated as a constant like undefined/Infinity/NaN?
 Right now it's constant.language.null.js but I'd expect it to be
constant.language.js.

These questions, while specifically about JavaScript's implementation, are
really general questions about naming, feature enablement and what defines
when you break away from root groups and define your own groups.  Any help
would be appreciated.

-- 
Take care,

Jeremy Whitlock (@whitlockjc on Twitter)
http://www.thoughtspark.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macromates.com/textmate/attachments/20131021/56c1b512/attachment.html>


More information about the textmate mailing list