I just installed RST Improved to compare it to Sublime's built-in RST syntax. To my surprise, the builtin was no longer available after installation! After tracking down the source here, I read through
RestructuredText Improved.py and realized that not only was that package put in
"ignored_packages", if a user decides to edit that file to remove this setting, it would be repeated next time Sublime is restarted! This is undocumented, and IMO undesired behavior. The language's name is reStructuredText Improved, clearly differentiated from reStructuredText, so the average user should be able to pick it successfully from the language menu or Command Palette. Disabling the builtin should be an opt-in procedure, where there is a setting in
reStructuredText Improved.sublime-settings like
"disable_builtin_rst": false with documentation that the user can set it to
true if they want the current behavior.
Additionally (but related), in
RestructuredText Improved.py you check for the presence of an
"ignored_packages" key, and if it doesn't exist, you create it and add
Vintage to it. (BTW, you're going about it all wrong, there are API calls for accessing Settings objects. It looks like you have code doing that, but you commented it out for some reason...) This is also undocumented and undesired behavior. In a brand-new Sublime install,
Packages/User/Preferences.sublime-settings contains an
"ignored_packages" array which contains Vintage. It is entirely possible that a user could be using Vintage mode, and just decided to erase the entire
"ignored_packages" array - your code reverses that, and disables Vintage for them, which I doubt they would be pleased with.
So, please take this into consideration - I think a lot of people would appreciate it. I also have some changes to the
.tmLanguage file and some scopes, but that's a separate issue.