> So we have 4 “dummy” grammars which basically just assigns a root scope to > the document (e.g. source.c++) and the C, C++, and Objective-C support is > then injected into the scopes for where they should be active. This would fix > embedding as well.
Okay I think I get it. Still I am not sure what makes injection more powerful than inclusion? So we would have 4 dummy grammars for root scope (C, C++, Obj-C, Obj-C++), but also 3 extra grammars (C, C++, Obj-C) that do the real job and have proper injection scope selectors set. Right? But then if Obj-C++ dummy grammar sets source.objc++ and all support grammars have source.objc++ injection selector assigned, then what would be the order of injection? How can we ensure C support grammar goes last? Also it seems when I remove "include = 'source.c'" from Lua grammar and made it use injection from "meta.embedded.c" scope, seems that C grammar $base still refers to injector grammar (Lua). Would it be feasible to make $base to refer first grammar in inclusion chain, where any injection break such chain? This would fix C embedding straight ahead when using injection. Moreover now if we use injection based C/C++/Obj-C support, can we embed (inject) some other grammar into C/C++? I.e.: 1. source.lua 2. meta.embedded.c <- C injection 3. string.quoted.double.c 4. meta.embedded.html <- HTML injection? And then will C grammar rules will be injected only to 2,3 scope levels or 4 scope level (HTML) too, where HTML get injected? Regards, -- Adam _______________________________________________ textmate-dev mailing list [email protected] http://lists.macromates.com/listinfo/textmate-dev
