I think it’s important that user customized sublime-completions and snippets take precedence over the defaults set in language packages.
For example if I have a HTML.sublime-completions with an entry for “label”
{ “trigger”: “label”, “contents”: “$0” },
This should replace the one set in HTML.sublime-completions in the HTML language package.
The same should be expected for snippets. This way merging language files becomes unnecessary.
That’s it.
Edit BUG: Just to add, when the same trigger that exists in a language package is added to a user created sublime-completions file, the whole user created sublime-completions file is not loaded.