def init_buffer(self): self.source_buffer = GtkSource.Buffer() resources_path = ServiceLocator.get_resources_path() # set source language for syntax highlighting self.source_language_manager = GtkSource.LanguageManager() self.source_language_manager.set_search_path( (os.path.join(resources_path, 'gtksourceview', 'language-specs'), )) self.source_language = self.source_language_manager.get_language( self.get_gsv_language_name()) self.source_buffer.set_language(self.source_language) self.source_style_scheme_manager = GtkSource.StyleSchemeManager() self.source_style_scheme_manager.set_search_path( (os.path.join(resources_path, 'gtksourceview', 'styles'), )) self.source_style_scheme_light = self.source_style_scheme_manager.get_scheme( 'setzer') self.source_style_scheme_dark = self.source_style_scheme_manager.get_scheme( 'setzer-dark') self.search_settings = GtkSource.SearchSettings() self.search_context = GtkSource.SearchContext.new( self.source_buffer, self.search_settings) self.search_context.set_highlight(True) self.source_buffer.connect('changed', self.on_buffer_changed) self.source_buffer.connect('insert-text', self.on_insert_text) self.add_change_code('buffer_ready')
def __init__(self, *args, **kwargs): self.label = Gtk.Label(label='Edit') """The :py:class:`Gtk.Label` representing this tabs name.""" super(MailSenderEditTab, self).__init__(*args, **kwargs) self.textview = self.gobjects['view_html_file'] """The :py:class:`Gtk.TextView` object of the editor.""" self.textbuffer = GtkSource.Buffer() """The :py:class:`Gtk.TextBuffer` used by the :py:attr:textview` attribute.""" self.textview.set_buffer(self.textbuffer) self.textview.modify_font(Pango.FontDescription(self.config['text_font'])) self.language_manager = GtkSource.LanguageManager() self.textbuffer.set_language(self.language_manager.get_language('html')) self.textbuffer.set_highlight_syntax(True) self.toolbutton_save_html_file = self.gobjects['toolbutton_save_html_file'] self.textview.connect('populate-popup', self.signal_textview_populate_popup) self.textview.connect('key-press-event', self.signal_textview_key_pressed) scheme_manager = GtkSource.StyleSchemeManager() style_scheme_name = self.config['text_source_theme'] style_scheme = scheme_manager.get_scheme(style_scheme_name) if style_scheme: self.textbuffer.set_style_scheme(style_scheme) else: self.logger.error("invalid GTK source theme: '{0}'".format(style_scheme_name)) self.file_monitor = None source_completion = self.textview.get_completion() source_completion.set_property('accelerators', 0) source_completion.set_property('auto-complete-delay', 250) source_completion.set_property('show-icons', False) source_completion.add_provider(completion_providers.HTMLComletionProvider()) source_completion.add_provider(completion_providers.JinjaEmailCompletionProvider())
def new_buffer(self): style_scheme_manager = GtkSource.StyleSchemeManager() b = GtkSource.Buffer() b.set_language(self.language_manager.get_language(self.language)) b.set_highlight_syntax(True) user_editor_style = global_gui_config.get_config_value( self.editor_style, "classic") if user_editor_style.startswith("rafcon"): user_editor_style = "rafcon" dark_theme = global_gui_config.get_config_value( 'THEME_DARK_VARIANT', True) if dark_theme: user_editor_style = "rafcon-dark" if is_custom_design_enabled(): user_editor_style = global_design_config.get_config_value( "SOURCE_VIEW_THEME") scheme = style_scheme_manager.get_scheme(user_editor_style) if scheme: self.style_scheme = scheme else: logger.debug( "The editor style '{}' is not supported. Using the default 'classic'" .format(user_editor_style)) self.style_scheme = style_scheme_manager.get_scheme('classic') b.set_style_scheme(self.style_scheme) return b
def __init__(self, *a, **kw): GtkSource.View.__init__(self, *a, **kw) self.filename = None self.mark = None self.offset = 0 self.program_length = 0 self.idle_line_reset = True self.buf = self.get_buffer() self.buf.set_max_undo_levels(20) self.buf.connect('changed', self.update_iter) self.lm = GtkSource.LanguageManager() self.sm = GtkSource.StyleSchemeManager() if 'EMC2_HOME' in os.environ: path = os.path.join(os.environ['EMC2_HOME'], 'share/gtksourceview-2.0/language-specs/') self.lm.set_search_path(self.lm.get_search_path() + [path]) self.buf.set_language(self.lm.get_language('.ngc')) self.set_show_line_numbers(True) self.set_show_line_marks(True) self.set_highlight_current_line(True) self.add_mark_category('error', '#ff7373') self.add_mark_category('motion', '#c5c5c5') self.add_mark_category('selected', '#96fef6') #TODO: how to set property background? but seems to work ok regardless. self.found_text_tag = Gtk.TextTag() self.connect('button-release-event', self.button_pressed)
def load_and_show_themes(self): # Set theme. self.themeManager = GtkSource.StyleSchemeManager() # Map from theme id to StyleScheme. self.themes = { tid: self.themeManager.get_scheme(tid) for tid in self.themeManager.get_scheme_ids() } # Holds the currently selected theme info. self.theme = None celltheme = Gtk.CellRendererText() self.comboTheme.pack_start(celltheme, True) self.comboTheme.add_attribute(celltheme, 'text', 0) self.bufferOutput = GtkSource.Buffer() self.langManager = GtkSource.LanguageManager() self.bufferLang = self.langManager.get_language('python3') self.bufferOutput.set_language(self.bufferLang) self.bufferOutput.set_highlight_syntax(True) self.bufferOutput.set_highlight_matching_brackets(True) if not self.set_theme_config(): # Use first preferred theme if available. themeprefs = ('oblivion', 'tomorrownighteighties', 'twilight', 'kate') for themeid in themeprefs: theme = self.themes.get(themeid, None) if theme: self.set_theme(theme) break self.build_theme_list()
def __init__(self, *args, **kwargs): self.label = Gtk.Label(label='Edit') """The :py:class:`Gtk.Label` representing this tabs name.""" super(MailSenderEditTab, self).__init__(*args, **kwargs) self.textview = self.gobjects['view_html_file'] """The :py:class:`Gtk.TextView` object of the editor.""" self.textbuffer = GtkSource.Buffer() """The :py:class:`Gtk.TextBuffer` used by the :py:attr:textview` attribute.""" self.textview.set_buffer(self.textbuffer) self.textview.modify_font( Pango.FontDescription(self.config['text_font'])) self.language_manager = GtkSource.LanguageManager() self.textbuffer.set_language( self.language_manager.get_language('html')) self.textbuffer.set_highlight_syntax(True) self.toolbutton_save_html_file = self.gobjects[ 'toolbutton_save_html_file'] self.textview.connect('populate-popup', self.signal_textview_populate_popup) scheme_manager = GtkSource.StyleSchemeManager() style_scheme_name = self.config['text_source_theme'] style_scheme = scheme_manager.get_scheme(style_scheme_name) if style_scheme: self.textbuffer.set_style_scheme(style_scheme) else: self.logger.error( "invalid GTK source theme: '{0}'".format(style_scheme_name)) self.file_monitor = None
def __init__(self, pathname): Observable.__init__(self) self.pathname = pathname self.kernelname = None self.cells = [] self.active_cell = None self.busy_cells = set() self.modified_cells = set() self.kernel_state = None self.result_factory = ServiceLocator.get_result_factory() self.save_state = 'saved' try: self.last_saved = datetime.datetime.fromtimestamp(os.path.getmtime(pathname)) except FileNotFoundError: self.last_saved = datetime.datetime.fromtimestamp(0) # set source language for syntax highlighting self.source_language_manager = GtkSource.LanguageManager() self.source_language_manager.set_search_path((os.path.dirname(__file__) + '/../resources/gtksourceview/language-specs',)) self.source_language_code = self.source_language_manager.get_language('sage') self.source_language_markdown = self.source_language_manager.get_language('markdown') self.source_style_scheme_manager = GtkSource.StyleSchemeManager() self.source_style_scheme_manager.set_search_path((os.path.dirname(__file__) + '/../resources/gtksourceview/styles',)) self.source_style_scheme = self.source_style_scheme_manager.get_scheme('sage') self.cursor_position = {'cell': None, 'cell_position': None, 'cell_size': None, 'position': None} self.list_item = list_item_model.NotebookListItem(self) self.view = notebook_viewgtk.NotebookView() self.presenter = notebook_presenter.NotebookPresenter(self, self.view) self.controller = notebook_controller.NotebookController(self, self.view) self.evaluator = notebook_evaluator.NotebookEvaluator(self) self.headerbar_controls = headerbar_controls.HeaderbarControls(self)
def __init__(self, worksheet): super(Editor, self).__init__() self.buffer = GtkSource.Buffer() self.worksheet = worksheet self._parsed = None sm = GtkSource.StyleSchemeManager() sm.append_search_path(paths.theme_dir) self.buffer.set_style_scheme(sm.get_scheme('monokai-extended')) lang_manager = GtkSource.LanguageManager() self.buffer.set_language(lang_manager.get_language('sql')) self.set_buffer(self.buffer) # TODO: Move to configuration font_desc = Pango.FontDescription.from_string('Ubuntu Mono 16') self.modify_font(font_desc) self.set_show_line_numbers(True) self.set_highlight_current_line(True) # attrs = GtkSource.MarkAttributes() # attrs.set_icon_name('document-new-symbolic') # self.set_mark_attributes('statement', attrs, 10) # self.set_show_line_marks(True) renderer = StatementGutter(self.buffer) gutter = self.get_gutter(Gtk.TextWindowType.LEFT) gutter.insert(renderer, 1) # Completions self._setup_completions() self.buffer.connect('changed', self.on_buffer_changed)
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.view.set_left_margin(6) self.settings = ServiceLocator.get_settings() resources_path = ServiceLocator.get_resources_path() self.mover_mark = self.create_mark('mover', self.get_start_iter(), True) # set source language for syntax highlighting self.source_language_manager = GtkSource.LanguageManager() self.source_language_manager.set_search_path( (os.path.join(resources_path, 'gtksourceview', 'language-specs'), )) self.source_language = self.source_language_manager.get_language( self.document.get_gsv_language_name()) self.set_language(self.source_language) self.source_style_scheme_manager = GtkSource.StyleSchemeManager() self.source_style_scheme_manager.set_search_path( (os.path.join(resources_path, 'gtksourceview', 'styles'), )) self.source_style_scheme_light = self.source_style_scheme_manager.get_scheme( 'setzer') self.source_style_scheme_dark = self.source_style_scheme_manager.get_scheme( 'setzer-dark') 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.view.connect('key-press-event', self.on_keypress) 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.document.add_change_code('buffer_ready')
def make_source(self): scheme = GtkSource.StyleSchemeManager() scheme.set_search_path() language = GtkSource.LanguageManager() buffer = GtkSource.Buffer() buffer.set_language(language.get_language('php')) buffer.set_style_scheme(scheme.get_scheme('tango')) buffer.set_highlight_syntax(True) font = Pango.FontDescription() font.set_family( 'Droid Sans Mono, DejaVu Sans Mono, Ubuntu Mono, Monospace') font.set_absolute_size(11 * Pango.SCALE) self.source = GtkSource.View.new_with_buffer(buffer) self.source.override_font(font) self.source.set_show_line_numbers(True) self.source.set_insert_spaces_instead_of_tabs(False) self.source.set_auto_indent(True) self.source.set_tab_width(4) self.source.set_indent_width(4) self.source.set_smart_home_end(True) self.source.set_highlight_current_line(True)
def _setup_style_scheme(self): sm = GtkSource.StyleSchemeManager() def set_theme(*args): self.buffer.set_style_scheme( sm.get_scheme(self._config.ui_style_scheme)) set_theme() self._config.connect('notify::ui-style-scheme', set_theme)
def __init__(self, **kwargs): super().__init__(**kwargs) buffer = self.get_buffer() lm = GtkSource.LanguageManager() lang = lm.get_language('yaml') buffer.set_language(lang) manager = GtkSource.StyleSchemeManager().get_default() scheme = manager.get_scheme("oblivion") buffer.set_style_scheme(scheme)
def get_source_style_scheme_manager(): if ServiceLocator.source_style_scheme_manager == None: ServiceLocator.source_style_scheme_manager = GtkSource.StyleSchemeManager() path1 = os.path.join(ServiceLocator.get_resources_path(), 'gtksourceview', 'styles') if not os.path.isdir(os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes')): os.mkdir(os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes')) path2 = os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes') ServiceLocator.source_style_scheme_manager.set_search_path((path1, path2)) return ServiceLocator.source_style_scheme_manager
def _setup_color_schemes(self): chooser = GtkSource.StyleSchemeChooserWidget() sw = self.builder.get_object('sw_color_schemes') sw.add(chooser) sm = GtkSource.StyleSchemeManager() chooser.set_style_scheme(sm.get_scheme(self.config.ui_style_scheme)) chooser.connect( 'notify::style-scheme', lambda *a: self._sp('ui-style-scheme', chooser.get_style_scheme().get_id())) self._chooser_color_scheme = chooser
def __init__(self, fullPath, activity): """ Do any initialization here. """ Gtk.ScrolledWindow.__init__(self) self.breakpoints = {} self.embeds = {} self.fullPath = fullPath self.activity = activity #self.interactive_close = False self.text_buffer = GtkSource.Buffer() self.text_buffer.create_tag('breakpoint',background="#ffeeee") self.text_buffer.create_tag('embed_shell',background="#eeffee") self.text_view = GtkSource.View.new_with_buffer(self.text_buffer) self.text_view.connect('button_press_event',self._pd_button_press_cb) self.brk_cat = 'BREAKPOINT' self.embed_cat = 'EMBEDED_SHELL' self.text_view.set_size_request(900, 350) self.text_view.set_editable(True) self.text_view.set_cursor_visible(True) self.text_view.set_highlight_current_line(True) self.text_view.set_show_line_numbers(True) self.text_view.set_insert_spaces_instead_of_tabs(True) if hasattr(self.text_view, 'set_tabs_width'): self.text_view.set_tabs_width(4) else: self.text_view.set_tab_width(4) self.text_view.set_auto_indent(True) self.text_view.set_wrap_mode(Gtk.Warp.CHAR) self.set_font_size(self.activity.font_size) #build 650 doesn't seem to have the same means of specifying the search directory mgr = GtkSource.StyleSchemeManager() mgr.prepend_search_path(self.activity.pydebug_path) style_scheme = mgr.get_scheme('vibrant') if style_scheme: self.text_buffer.set_style_scheme(style_scheme) self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.add(self.text_view) self.text_view.show() self.load_text() self.show()
def set_style_scheme(self, scheme_id: str) -> None: scheme = GtkSource.StyleSchemeManager().get_scheme(scheme_id) self.buffer.set_style_scheme(scheme) try: bgcolor = scheme.get_style('text').props.background except AttributeError: bgcolor = '#fff' css_provider = Gtk.CssProvider() css_provider.load_from_data( f'.scrolled-editor {{background: {bgcolor}}}'.encode('ascii')) self.scrolled.get_style_context().add_provider( css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
def __init__(self, fullPath, activity): """ Do any initialization here. """ global mark_seq mark_seq = 0 self.fullPath = fullPath self._activity = activity self.breakpoints = {} self.embeds = {} Gtk.ScrolledWindow.__init__(self) self.text_buffer = GtkSource.Buffer() self.text_buffer.create_tag(BREAKPOINT_CAT, background=BREAKPOINT_COLOR) self.text_buffer.create_tag(SHELL_CAT, background=EMBEDED_SHELL_COLOR) self.text_buffer.create_tag(TRACE_CAT, background=EMBEDED_BREAKPOINT_COLOR) self.text_view = GtkSource.View.new_with_buffer(self.text_buffer) self.text_view.connect('button_press_event', self._pd_button_press_cb) self.text_view.set_size_request(900, 350) self.text_view.set_editable(True) self.text_view.set_cursor_visible(True) self.text_view.set_highlight_current_line(True) self.text_view.set_show_line_numbers(True) self.text_view.set_insert_spaces_instead_of_tabs(True) if hasattr(self.text_view, 'set_tabs_width'): self.text_view.set_tabs_width(4) else: self.text_view.set_tab_width(4) self.text_view.set_auto_indent(True) self.text_view.set_wrap_mode(Gtk.WrapMode.CHAR) #self.text_view.modify_font(pango.FontDescription("Monospace 6.5")) self.set_font_size(self._activity.font_size) mgr = GtkSource.StyleSchemeManager() mgr.prepend_search_path(self._activity.pydebug_path) style_scheme = mgr.get_scheme('vibrant') if style_scheme: self.text_buffer.set_style_scheme(style_scheme) self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.add(self.text_view) self.text_view.show() self.load_text() self.show()
def __init__(self, request_editor): super(ResponseContainer, self).__init__() self.last_response: Optional[requests.Response] = None self.lang_manager = GtkSource.LanguageManager() style_manager = GtkSource.StyleSchemeManager() # scheme: GtkSource.StyleScheme = mgr.get_scheme('classic') scheme: GtkSource.StyleScheme = style_manager.get_scheme('kate') self.response_text.get_buffer().set_style_scheme(scheme) # TODO: Lazy load the web view self.response_webview: WebKit2.WebView = WebKit2.WebView() \ .new_with_context(WebKit2.WebContext().new_ephemeral()) self.response_webview_scroll_window.add(self.response_webview)
def __init__(self, selected_style='classic'): Gtk.ToolItem.__init__(self) style_manager = GtkSource.StyleSchemeManager() self.styles = style_manager.get_scheme_ids() self.combo = Gtk.ComboBoxText() for style in self.styles: self.combo.append_text(style) self.combo.set_active(self.styles.index(selected_style)) self.combo.connect('changed', self.__theme_changed) self.add(self.combo) self.show_all()
def __init__(self, request_editor): self.request_editor = request_editor builder = Gtk.Builder().new_from_file('ui/RequestContainer.glade') self.request_notebook: Gtk.Notebook = builder.get_object( 'requestNotebook') self.lang_manager = GtkSource.LanguageManager() self.request_text: GtkSource.View = builder.get_object('requestText') style_manager = GtkSource.StyleSchemeManager() scheme: GtkSource.StyleScheme = style_manager.get_scheme('kate') self.request_text.get_buffer().set_style_scheme(scheme) # Set based on type of request lang = self.lang_manager.get_language('text') self.request_text.get_buffer().set_language(lang) self.request_type_notebook: Gtk.Notebook = builder.get_object( 'requestTypeNotebook') self.request_form_data = ParamTable() self.request_type_notebook.insert_page(self.request_form_data, Gtk.Label('Form Data'), 2) self.request_form_urlencoded = ParamTable() self.request_type_notebook.insert_page(self.request_form_urlencoded, Gtk.Label('Form Url-Encoded'), 3) self.request_type_popover: Gtk.Popover = builder.get_object( 'requestTypePopover') self.request_type_popover_tree_view: Gtk.TreeView = builder.get_object( 'requestTypePopoverTreeView') self.request_type_popover_tree_view_store: Gtk.ListStore = builder.get_object( 'requestTypePopoverStore') self.param_table = ParamTable() self.request_header_table = ParamTable() self.request_notebook.insert_page(self.param_table, Gtk.Label(label='Params'), 0) self.request_notebook.insert_page(self.request_header_table, Gtk.Label(label='Headers'), 1) self.request_notebook.set_current_page(0) # Connections self.request_type_popover_tree_view.connect( 'row-activated', self._on_popover_row_activated) self.request_type_notebook.connect( 'switch-page', self._on_request_type_notebook_page_switched)
def setup(): # call this only once in this file window.set_title('Wisualia editor') language_manager = GtkSource.LanguageManager() input_buffer.set_language(language_manager.get_language('python3')) style_manager = GtkSource.StyleSchemeManager() output_buffer.set_style_scheme(style_manager.get_scheme('cobalt')) # Larger font context = input_view.get_style_context() css = (b"textview {" b" font: 12pt monospace;" b"}") provider = Gtk.CssProvider() provider.load_from_data(css) context.add_provider(provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
def build(self) -> None: super().build() self.add_configurator('file_group', FileGroupSelector(FileGroupFilter.XML)) button = Gtk.Button.new_with_label('PageViewer') button.connect('clicked', self.open_jpageviewer) button.set_visible(True) self.action_bar.pack_start(button) lang_manager = GtkSource.LanguageManager() style_manager = GtkSource.StyleSchemeManager() self.text_view = GtkSource.View(visible=True, vexpand=False, editable=False, monospace=True, show_line_numbers=True, width_request=400) self.buffer = self.text_view.get_buffer() self.buffer.set_language(lang_manager.get_language('xml')) self.buffer.set_style_scheme(style_manager.get_scheme('tango')) self.text_view.connect('scroll-event', self.on_scroll) self.scroller.add(self.text_view)
def __init__(self, notebook): Observable.__init__(self) self.notebook = notebook self.pathname = '' self.save_state = 'saved' self.meta = { 'name': 'Untitled', 'tags': {}, 'id_number': 0, 'backend': 'sage', 'last_change': ('admin', time.time()), 'last_accessed': datetime.datetime.fromtimestamp(0) } self.last_saved = datetime.datetime.fromtimestamp(0) self.cells = [] self.active_cell = None self.busy_cells = set() self.modified_cells = set() self.kernel_state = None # set source language for syntax highlighting self.source_language_manager = GtkSource.LanguageManager() self.source_language_manager.set_search_path( ('./resources/gtksourceview/language-specs', )) self.source_language_code = self.source_language_manager.get_language( 'sage') self.source_language_markdown = self.source_language_manager.get_language( 'markdown') self.source_style_scheme_manager = GtkSource.StyleSchemeManager() self.source_style_scheme_manager.set_search_path( ('./resources/gtksourceview/styles', )) self.source_style_scheme = self.source_style_scheme_manager.get_scheme( 'sage') self.cursor_position = { 'cell': None, 'cell_position': None, 'cell_size': None, 'position': None }
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.set_show_line_numbers(True) self.set_monospace(True) self.buffer = self.get_buffer() self.buffer.set_highlight_syntax(True) # Set language self.lm = GtkSource.LanguageManager() language = self.lm.get_language('fountain') self.buffer.set_language(language) # Set style self.ssm = GtkSource.StyleSchemeManager() style = self.ssm.get_scheme('storiestyper-light') self.buffer.set_style_scheme(style) self.show_all()
def set_conf(self, conf): self.conf = conf style_manager = GtkSource.StyleSchemeManager() font = '%s %d' % (conf['font'], conf['font-size']) if conf['wrap-mode'] == 'none': wrap_mode = Gtk.WrapMode.NONE elif conf['wrap-mode'] == 'char': wrap_mode = Gtk.WrapMode.CHAR elif conf['wrap-mode'] == 'word': wrap_mode = Gtk.WrapMode.WORD self.modify_font(Pango.FontDescription(font)) self.set_tab_width(conf['tab-width']) self.set_insert_spaces_instead_of_tabs(conf['use-spaces']) self.buffer.set_style_scheme(style_manager.get_scheme(conf['theme'])) self.set_show_line_numbers(conf['show-line-numbers']) self.set_show_right_margin(conf['show-right-line']) self.set_right_margin_position(conf['right-line-pos']) self.set_wrap_mode(wrap_mode)
def __init__(self, full_path): ''' Do any initialization here. ''' GtkSource.View.__init__(self) self.full_path = full_path self.set_size_request(900, 350) self.set_editable(True) self.set_cursor_visible(True) self.set_show_line_numbers(True) self.set_insert_spaces_instead_of_tabs(True) self.set_highlight_current_line(True) self.text_buffer = GtkSource.Buffer() stylemanager = GtkSource.StyleSchemeManager() self.light_theme = stylemanager.get_scheme('classic') self.dark_theme = stylemanager.get_scheme('oblivion') self.text_buffer.set_style_scheme(self.light_theme) # Tags for search tagtable = self.text_buffer.get_tag_table() hilite_tag = Gtk.TextTag.new('search-hilite') hilite_tag.props.background = '#FFFFB0' tagtable.add(hilite_tag) select_tag = Gtk.TextTag.new('search-select') select_tag.props.background = '#B0B0FF' tagtable.add(select_tag) self.set_buffer(self.text_buffer) self.set_tab_width(4) self.set_auto_indent(True) self.load_text() self.show()
def _make_input(self): self.in_label = label = CellLabelWidget() self.in_view = view = GtkSource.View() view.connect("key-press-event", self.on_key_press_event) view.connect("focus-in-event", self._focus_in_event_callback) view.connect("focus-out-event", self._focus_out_event_callback) buffer = self.in_buffer = GtkSource.Buffer() style = GtkSource.StyleSchemeManager().get_scheme('tango') buffer.set_style_scheme(style) view.set_buffer(buffer) fontdesc = Pango.FontDescription("Consolas 13") view.modify_font(fontdesc) self.set_language() view.set_hexpand(True) view.set_vexpand(False) self.completion_provider = provider = SageCompletionProvider(self) self.completion = completion = view.get_completion() completion.add_provider(provider) #completion.set_property('auto-complete-delay', 2000) self._completion_is_visible = False completion.connect('show', self.on_completion_show_event) completion.connect('hide', self.on_completion_hide_event) return label, view
def __init__(self): GtkSource.View.__init__(self) self.set_hexpand(True) self.set_vexpand(True) # create buffer self.buf = self.get_buffer() # setup style and lang managers self.lm = GtkSource.LanguageManager() self.sm = GtkSource.StyleSchemeManager() self.lm.set_search_path([LANGDIR]) self.sm.set_search_path([STYLEDIR]) self.buf.set_style_scheme(self.sm.get_scheme('gcode')) self.buf.set_language(self.lm.get_language('gcode')) self.buf.set_max_undo_levels(20) self.set_show_line_numbers(True) self.set_show_line_marks(False) self.set_highlight_current_line(False) self.connect('key-press-event', self.on_key_press) # Set line highlight styles self.add_mark_category('error', '#ff7373') self.add_mark_category('motion', '#c5c5c5') self.add_mark_category('selected', '#96fef6') self.mark = None self.current_file = None self.error_line = None self.show()
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.view.set_left_margin(6) self.settings = ServiceLocator.get_settings() resources_path = ServiceLocator.get_resources_path() # set source language for syntax highlighting self.source_language_manager = GtkSource.LanguageManager() self.source_language = self.source_language_manager.get_language( self.document.get_gsv_language_name()) self.set_language(self.source_language) self.source_style_scheme_manager = GtkSource.StyleSchemeManager() self.source_style_scheme_manager.set_search_path( (os.path.join(resources_path, 'gtksourceview', 'styles'), )) self.source_style_scheme_light = self.source_style_scheme_manager.get_scheme( 'setzer') self.source_style_scheme_dark = self.source_style_scheme_manager.get_scheme( 'setzer-dark') self.search_settings = GtkSource.SearchSettings() self.search_context = GtkSource.SearchContext.new( self, self.search_settings) self.search_context.set_highlight(True) self.synctex_tag_count = 0 self.synctex_highlight_tags = dict() self.document.add_change_code('buffer_ready')
'folder': FOLDER, 'text-x-generic': TEXT, 'text-x-python': PYTHON, 'application-x-python-bytecode': PYTHON, 'application-x-executable': EXECUTABLE, 'application-x-shellscript': EXECUTABLE, 'application-x-m4': EXECUTABLE, 'text-x-script': EXECUTABLE, 'package-x-generic': COMPRESSED, 'inode-symlink': FOLDER_LINK, 'application-pdf': PDF } LANGUAGE_MANAGER = GtkSource.LanguageManager() LANGUAGES = LANGUAGE_MANAGER.get_language_ids() STYLE_MANAGER = GtkSource.StyleSchemeManager() STYLES = STYLE_MANAGER.get_scheme_ids() STYLES_PATH = os.path.join(os.path.dirname(__file__), 'styles/') STYLE_MANAGER = GtkSource.StyleSchemeManager() STYLE_MANAGER.append_search_path(STYLES_PATH) STYLES = STYLE_MANAGER.get_scheme_ids() # FIXME: There must be many more exceptions. BAD_LANGUAGES = {'c++': 'cpp', '.desktop': 'desktop', 'marcar': 'markdown'} def get_pixbuf_from_path(path, size=62): icon_theme = Gtk.IconTheme() pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(UNKNOWN, size, size)