40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
import sublime
|
|
import sublime_plugin
|
|
|
|
from ..show_error import show_error
|
|
from ..preferences_filename import preferences_filename
|
|
|
|
|
|
class EnablePackageCommand(sublime_plugin.WindowCommand):
|
|
"""
|
|
A command that removes a package from Sublime Text's ignored packages list
|
|
"""
|
|
|
|
def run(self):
|
|
self.settings = sublime.load_settings(preferences_filename())
|
|
self.disabled_packages = self.settings.get('ignored_packages')
|
|
self.disabled_packages.sort()
|
|
if not self.disabled_packages:
|
|
show_error('There are no disabled packages to enable.')
|
|
return
|
|
self.window.show_quick_panel(self.disabled_packages, self.on_done)
|
|
|
|
def on_done(self, picked):
|
|
"""
|
|
Quick panel user selection handler - enables the selected package
|
|
|
|
:param picked:
|
|
An integer of the 0-based package name index from the presented
|
|
list. -1 means the user cancelled.
|
|
"""
|
|
|
|
if picked == -1:
|
|
return
|
|
package = self.disabled_packages[picked]
|
|
ignored = self.settings.get('ignored_packages')
|
|
self.settings.set('ignored_packages',
|
|
list(set(ignored) - set([package])))
|
|
sublime.save_settings(preferences_filename())
|
|
sublime.status_message(('Package %s successfully removed from list ' +
|
|
'of disabled packages - restarting Sublime Text may be required') %
|
|
package)
|