def init(self): self.update_switchers() self.view.style_switcher.set_active_id(self.settings.get_value('preferences', 'syntax_scheme')) self.view.style_switcher.connect('changed', self.on_style_switcher_changed, False) self.view.style_switcher_dark_mode.set_active_id(self.settings.get_value('preferences', 'syntax_scheme_dark_mode')) self.view.style_switcher_dark_mode.connect('changed', self.on_style_switcher_changed, True) self.view.style_switcher_label_light.connect('clicked', self.set_style_switcher_page, 'light') self.view.style_switcher_label_dark.connect('clicked', self.set_style_switcher_page, 'dark') source_language_manager = ServiceLocator.get_source_language_manager() source_language = source_language_manager.get_language('latex') self.view.source_buffer.set_language(source_language) self.update_font_color_preview() if ServiceLocator.get_is_dark_mode(): self.view.style_switcher_label_dark.clicked() self.view.add_scheme_button.connect('clicked', self.on_add_scheme_button_clicked) self.view.remove_scheme_button.connect('clicked', self.on_remove_scheme_button_clicked) self.view.font_chooser_button.set_font(self.settings.get_value('preferences', 'font_string')) self.view.font_chooser_button.connect('font-set', self.on_font_set) self.view.option_use_system_font.set_active(self.settings.get_value('preferences', 'use_system_font')) self.view.font_chooser_revealer.set_reveal_child(not self.view.option_use_system_font.get_active()) self.view.option_use_system_font.connect('toggled', self.on_use_system_font_toggled)
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): self.update_switchers() self.view.style_switcher.set_active_id( self.settings.get_value('preferences', 'syntax_scheme')) self.view.style_switcher.connect('changed', self.on_style_switcher_changed, False) self.view.style_switcher_dark_mode.set_active_id( self.settings.get_value('preferences', 'syntax_scheme_dark_mode')) self.view.style_switcher_dark_mode.connect( 'changed', self.on_style_switcher_changed, True) dark_mode_state = self.settings.get_value('preferences', 'prefer_dark_mode') self.view.option_dark_mode.set_active(dark_mode_state) self.view.option_dark_mode.connect('toggled', self.on_dark_mode_toggle_toggled) self.view.style_switcher_stack.set_visible_child_name( 'dark' if dark_mode_state else 'light') self.update_font_color_preview() self.update_remove_button() ip_state = self.settings.get_value('preferences', 'invert_pdf') self.view.option_invert_preview.set_active(ip_state) self.view.option_invert_preview.connect('toggled', self.on_ip_toggle_toggled) source_language_manager = ServiceLocator.get_source_language_manager() source_language = source_language_manager.get_language('latex') self.view.source_buffer.set_language(source_language) self.update_font_color_preview() self.view.add_scheme_button.connect('clicked', self.on_add_scheme_button_clicked) self.view.remove_scheme_button.connect( 'clicked', self.on_remove_scheme_button_clicked) self.view.font_chooser_button.set_font( self.settings.get_value('preferences', 'font_string')) self.view.font_chooser_button.connect('font-set', self.on_font_set) self.view.option_use_system_font.set_active( self.settings.get_value('preferences', 'use_system_font')) self.view.font_chooser_revealer.set_reveal_child( not self.view.option_use_system_font.get_active()) self.view.option_use_system_font.connect( 'toggled', self.on_use_system_font_toggled)
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)