# -*- coding: utf-8 -*- # # Copyright © Spyder Project Contributors # Licensed under the terms of the MIT License # (see spyder/__init__.py for details) """ Console History Plugin. """ # Third party imports from qtpy.QtCore import Signal # Local imports from spyder.api.plugins import Plugins, SpyderDockablePlugin from spyder.api.plugin_registration.decorators import on_plugin_available from spyder.api.translations import get_translation from spyder.plugins.history.confpage import HistoryConfigPage from spyder.plugins.history.widgets import HistoryWidget # Localization _ = get_translation('spyder') class HistoryLog(SpyderDockablePlugin): """ History log plugin. """ NAME = 'historylog' REQUIRES = [Plugins.Preferences, Plugins.Editor, Plugins.Console] TABIFY = Plugins.IPythonConsole WIDGET_CLASS = HistoryWidget CONF_SECTION = NAME CONF_WIDGET_CLASS = HistoryConfigPage CONF_FILE = False # --- Signals # ------------------------------------------------------------------------ sig_focus_changed = Signal() """ This signal is emitted when the focus of the code editor storing history changes. """ # --- SpyderDockablePlugin API # ------------------------------------------------------------------------ def get_name(self): return _('History') def get_description(self): return _('Provide command history for IPython Consoles') def get_icon(self): return self.create_icon('history') def on_initialize(self): widget = self.get_widget() widget.sig_focus_changed.connect(self.sig_focus_changed) @on_plugin_available(plugin=Plugins.Preferences) def on_preferences_available(self): preferences = self.get_plugin(Plugins.Preferences) preferences.register_plugin_preferences(self) @on_plugin_available(plugin=Plugins.Console) def on_console_available(self): console = self.get_plugin(Plugins.Console) console.sig_refreshed.connect(self.refresh) def update_font(self): color_scheme = self.get_color_scheme() font = self.get_font() self.get_widget().update_font(font, color_scheme) # --- Plubic API # ------------------------------------------------------------------------ def refresh(self): """ Refresh main widget. """ self.get_widget().refresh() def add_history(self, filename): """ Create history file. Parameters ---------- filename: str History file. """ self.get_widget().add_history(filename) def append_to_history(self, filename, command): """ Append command to history file. Parameters ---------- filename: str History file. command: str Command to append to history file. """ self.get_widget().append_to_history(filename, command)