When we get the new scope injection system for syntaxes we should plan on making some big changes to the current state of many bundles.
We currently have a Ruby syntax, and the Rails syntax includes it. The current Rails syntax seems to be targeted at Rails 1.1.x. I'm torn about upgrading that syntax however. On the one hand, the official Rails syntax should support the latest version of Rails, but I'd hate to introduce some incompatibilities with current applications written for Rails 1.1.x.
The new organizational method should be something like this.
Root language syntax Contains only the basic scopes for the language syntax itself and any built in language stuff. Core library syntax injector Injects the core library support junk into the Root language syntax Other Library syntax injectors EG: Rails 1.1.x injector, Rail 1.2 injector, Rails 2.0 injector, Camping injector, etc… Personal syntax additions Inject support for all your personal libraries and classes and junk Optional syntax niceties EG: Rails 1.2 deprecated code, nested brackets, leading space, etc...
That way all of the layers are nicely segregated from eachother. Nothing can really change the basic Ruby syntax, so a single tmLanguage should scope the entire thing. Then you can add stuff where you need it in a nicely segregated way.
thomas Aylott — subtleGradient — CrazyEgg — sixteenColors
Thomas Aylott (subtleGradient) wrote:
We currently have a Ruby syntax, and the Rails syntax includes it. The current Rails syntax seems to be targeted at Rails 1.1.x. I'm torn about upgrading that syntax however. On the one hand, the official Rails syntax should support the latest version of Rails, but I'd hate to introduce some incompatibilities with current applications written for Rails 1.1.x.
[...]
That way all of the layers are nicely segregated from eachother. Nothing can really change the basic Ruby syntax, so a single tmLanguage should scope the entire thing. Then you can add stuff where you need it in a nicely segregated way.
I think that a dynamic scope set at the project level should be able to tell which version of Rails to inject into Ruby files, etc. Then we don't need a top-level "Rails" language at all, and users can just pick the injected language by changing their project.
-Jacob