Without this change grammar registrations from different plugins sharing the same scope name could unpredictably overwrite each other.
With this change, grammars are registered using fully qualified scope names (scopeName + '@' + pluginId). If plugin A supplies a content-type-to-scope and registers a grammar to that scope, it is ensured that if another plugin B also registers a grammar using the same scope, there won't be accidental usage of the plugin B's grammar via plugin A's content-type-to-scope binding.
The change also makes multiple grammar registrations for the same scope visible in the Preferences>TextMate>Grammars table.
Without this change grammar registrations from different plugins sharing the same scope name could unpredictably overwrite each other.
With this change, grammars are registered using fully qualified scope names (scopeName + '@' + pluginId). If plugin A supplies a content-type-to-scope and registers a grammar to that scope, it is ensured that if another plugin B also registers a grammar using the same scope, there won't be accidental usage of the plugin B's grammar via plugin A's content-type-to-scope binding.
The change also makes multiple grammar registrations for the same scope visible in the Preferences>TextMate>Grammars table.