Actually there is a solution for languages. You can define your additions in a new bundle, then include the original. As an example my Perl language definition loos like this (deleting most of my additions for brevity):
{ scopeName = 'source.perl.gerd'; firstLineMatch = '^#!.*\bperl\b'; fileTypes = ( 'pl', 'pm', 'pod' ); foldingStartMarker = '(/*|({|[|()\s*$)'; foldingStopMarker = '(*/|^\s*(}|]|)))'; patterns = ( { name = 'entity.name.class'; match = '^\s*package\s+.*$\n?'; }, { include = 'source.perl'; }, ); }
Ah, that's pretty smart. This does only apply to language though right? Macros, snippets etc are each "unique", so adding my own snippets will still allow me to catch up on official ones ... as long as I don't change the official ones of course .. It's not entirely ideal though to have to go through the process above, on the other hand, if one edits the language, one knows what one does.
Andreas