Only run plugin code if user wants to

Issue #12 new
MattDMo
created an issue

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.

Comments (1)

  1. MattDMo reporter

    Just pinging you on this. I just set up a new machine and when I installed your plugin again the same thing happened. This has to be made an option in a .sublime-settings file, preferably with the default to off, or just removed altogether. I can't see any possible use case for this, and as I mentioned previously your implementation is buggy anyway.

    Please fix this as soon as you can.

  2. Log in to comment