Last active
May 11, 2020 14:45
-
-
Save mattst/c88a0853a952c3e37630230f5499ba7a to your computer and use it in GitHub Desktop.
Sublime Text plugin to add, remove, or toggle packages in the ignored_packages setting
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Save as AlterIgnoredPackages.py in your user packages directory. | |
# e.g. ~/.config/sublime-text-3/Packages/User/AlterIgnoredPackages.py | |
# | |
# Here are some key binding examples: | |
# | |
# { | |
# "keys": ["ctrl+k", "ctrl+z"], | |
# "command": "alter_ignored_packages", | |
# "args": {"add_list": ["PackageName1"], | |
# "remove_list": ["PackageName2", "PackageName3"] } | |
# }, | |
# { | |
# "keys": ["ctrl+k", "ctrl+shift+z"], | |
# "command": "alter_ignored_packages", | |
# "args": {"toggle_list": ["PackageName"] } | |
# }, | |
# | |
import sublime | |
import sublime_plugin | |
class AlterIgnoredPackagesCommand(sublime_plugin.ApplicationCommand): | |
def run(self, add_list=[], remove_list=[], toggle_list=[]): | |
preferences = sublime.load_settings("Preferences.sublime-settings") | |
ignored_packages = preferences.get("ignored_packages", []) | |
for package_name in add_list: | |
if package_name not in ignored_packages: | |
ignored_packages.append(package_name) | |
for package_name in remove_list: | |
if package_name in ignored_packages: | |
ignored_packages.remove(package_name) | |
for package_name in toggle_list: | |
if package_name in ignored_packages: | |
ignored_packages.remove(package_name) | |
else: | |
ignored_packages.append(package_name) | |
preferences.set("ignored_packages", ignored_packages) | |
sublime.save_settings("Preferences.sublime-settings") | |
# Unfortunately the automatic ST reloading settings | |
# message overwrites this message a bit too quickly. | |
message = "ignored_packages: " + str(ignored_packages) | |
sublime.status_message(message) | |
# Code to overwrite the automatic ST reloading settings status | |
# message with the plugin's status message. If using comment out | |
# the sublime.status_message(message) line above and adjust the | |
# delay as needed (e.g. 500 ms is not long enough on my system). | |
# | |
# timeout_in_milli_seconds = 1000 | |
# sublime.set_timeout_async(lambda: sublime.status_message(message), | |
# timeout_in_milli_seconds) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment