def on_add_scheme_button_clicked(self, button): dialog = AddSchemeDialog(self.main_window) pathname = dialog.run() if pathname != None: destination = os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes', os.path.basename(pathname)) shutil.copyfile(pathname, destination) ServiceLocator.get_source_style_scheme_manager().force_rescan() self.update_switchers() scheme_id = self.get_scheme_id_from_file(destination) if ServiceLocator.get_is_dark_mode(): self.view.style_switcher_dark_mode.set_active_id(scheme_id) else: self.view.style_switcher.set_active_id(scheme_id)
def update_font_color_preview(self): source_style_scheme_manager = ServiceLocator.get_source_style_scheme_manager( ) name = self.settings.get_value('preferences', 'syntax_scheme') source_style_scheme_light = source_style_scheme_manager.get_scheme( name) name = self.settings.get_value('preferences', 'syntax_scheme_dark_mode') source_style_scheme_dark = source_style_scheme_manager.get_scheme(name) if self.view.style_switcher_stack.get_visible_child_name() == 'light': self.view.source_buffer.set_style_scheme(source_style_scheme_light) self.view.preview_wrapper.get_style_context().remove_class( 'light-bg') self.view.preview_wrapper.get_style_context().remove_class( 'dark-bg') if ServiceLocator.get_is_dark_mode(): self.view.preview_wrapper.get_style_context().add_class( 'light-bg') else: self.view.source_buffer.set_style_scheme(source_style_scheme_dark) self.view.preview_wrapper.get_style_context().remove_class( 'light-bg') self.view.preview_wrapper.get_style_context().remove_class( 'dark-bg') if not ServiceLocator.get_is_dark_mode(): self.view.preview_wrapper.get_style_context().add_class( 'dark-bg')
def __init__(self, document): GtkSource.Buffer.__init__(self) self.document = document self.view = GtkSource.View.new_with_buffer(self) self.view.set_monospace(True) self.view.set_smart_home_end(True) self.view.set_auto_indent(True) self.settings = ServiceLocator.get_settings() self.source_language_manager = ServiceLocator.get_source_language_manager( ) self.source_style_scheme_manager = ServiceLocator.get_source_style_scheme_manager( ) self.font_manager = ServiceLocator.get_font_manager() self.font_manager.register_observer(self) self.mover_mark = self.create_mark('mover', self.get_start_iter(), True) # set source language for syntax highlighting self.source_language = self.source_language_manager.get_language( self.document.get_gsv_language_name()) self.set_language(self.source_language) self.update_syntax_scheme() self.search_settings = GtkSource.SearchSettings() self.search_context = GtkSource.SearchContext.new( self, self.search_settings) self.search_context.set_highlight(True) self.insert_position = 0 self.synctex_tag_count = 0 self.synctex_highlight_tags = dict() self.indentation_update = None self.indentation_tags = dict() self.tab_width = self.settings.get_value('preferences', 'tab_width') self.settings.register_observer(self) self.placeholder_tag = self.create_tag('placeholder') self.placeholder_tag.set_property('background', '#fce94f') self.placeholder_tag.set_property('foreground', '#000') self.connect('mark-set', self.on_mark_set) self.connect('mark-deleted', self.on_mark_deleted) self.connect('insert-text', self.on_insert_text) self.connect('delete-range', self.on_delete_range) self.connect('end-user-action', self.on_end_user_action) self.connect('changed', self.on_buffer_changed) self.connect('modified-changed', self.on_modified_changed) self.document.add_change_code('buffer_ready') self.view.set_left_margin( self.font_manager.get_char_width(self.view) - 3)
def __init__(self, language, document): Observable.__init__(self) self.document = document self.settings = ServiceLocator.get_settings() self.source_buffer = GtkSource.Buffer() self.source_view = GtkSource.View.new_with_buffer(self.source_buffer) self.source_language_manager = ServiceLocator.get_source_language_manager( ) self.source_style_scheme_manager = ServiceLocator.get_source_style_scheme_manager( ) if language == 'bibtex': self.source_language = self.source_language_manager.get_language( 'bibtex') else: self.source_language = self.source_language_manager.get_language( 'latex') self.source_buffer.set_language(self.source_language) self.update_syntax_scheme() self.scroll_to = None self.insert_position = 0 self.synctex_tag_count = 0 self.synctex_highlight_tags = dict() self.indentation_update = None self.indentation_tags = dict() self.placeholder_tag = self.source_buffer.create_tag('placeholder') self.placeholder_tag.set_property('background', '#fce94f') self.placeholder_tag.set_property('foreground', '#000') self.source_buffer.connect('mark-set', self.on_mark_set) self.source_buffer.connect('mark-deleted', self.on_mark_deleted) self.source_buffer.connect('insert-text', self.on_insert_text) self.source_buffer.connect('delete-range', self.on_delete_range) self.source_buffer.connect('changed', self.on_buffer_changed) self.source_buffer.connect('modified-changed', self.on_modified_changed) self.undo_manager = self.source_buffer.get_undo_manager() self.undo_manager.connect('can-undo-changed', self.on_can_undo_changed) self.undo_manager.connect('can-redo-changed', self.on_can_redo_changed) self.settings.connect('settings_changed', self.on_settings_changed)