def activate(self, window): self.window = window self.dialog = None self.language_manager = gedit.get_language_manager() langs = self.language_manager.get_language_ids() self.model = gtk.ListStore(str) self.available_ids = {} for id in langs: lang = self.language_manager.get_language(id) mimes = lang.get_mime_types() name = lang.get_name() self.available_ids[name.upper()] = id self.model.append([name]) actions = [ ('QuickHighlightMode', gtk.STOCK_SELECT_COLOR, _('Quick Highlight Mode'), '<Control><Shift>h', _("Press Ctrl+Shift+H for quick highlight selection"), self.on_open) ] action_group = gtk.ActionGroup("QuickHighlightModeActions") action_group.add_actions(actions, self.window) self.statusbar = window.get_statusbar() self.context_id = self.statusbar.get_context_id("QuickHighlightMode") self.message_id = None self.manager = self.window.get_ui_manager() self.manager.insert_action_group(action_group, -1) self.manager.add_ui_from_string(ui_str)
def fill_fields(self): node = self.current_node self['accelerator'].set_text(default(node.shortcut, '')) buf = self['commands'].get_buffer() script = default(''.join(node.get_script()), '') buf.begin_not_undoable_action() buf.set_text(script) buf.end_not_undoable_action() self.script_hash = self.compute_hash(script) contenttype = gio.content_type_guess(data=script) lmanager = gedit.get_language_manager() language = lmanager.guess_language(content_type=contenttype) if language is not None: buf.set_language(language) buf.set_highlight_syntax(True) else: buf.set_highlight_syntax(False) for nm in ('input', 'output', 'applicability', 'save-files'): model = self[nm].get_model() piter = model.get_iter_first() self.set_active_by_name(nm, default(node.__getattribute__(nm.replace('-', '_')), model.get_value(piter, self.NAME_COLUMN))) self.fill_languages_button()
def __init__(self, plugin, window): self.window = window self.plugin = plugin self.ui_id = None self.language_manager = gedit.get_language_manager() self.results_view = None self.output_view = None #insert the menu items manager = self.window.get_ui_manager() self._action_group = gtk.ActionGroup("ExamplePyPluginActions") self._action_group.add_actions([("OpenDocument", None, _("Open Document"), None, _("Open an Existing Publican Document"), self.on_open_document_activate)]) self._action_group.add_actions([("CreateDocument", None, _("Create New Document"), None, _("Create a new publican document"), self.on_create_document_activate)]) self._action_group.add_actions([("PublicanMenuAction", None, _("Publican"), None, _("Clear the document"), None)]) self._action_group.add_actions([("PublicanMenuTools", None, _("Tools"), None, _("Clear the document"), None)]) self._action_group.add_actions([("xiincludetool", None, _("xi:include"), "<control><shift>x", _("Clear the document"), self.xiinclude_tool)]) manager.insert_action_group(self._action_group, -1) self._ui_id = manager.add_ui_from_string(ui_str) panel = self.window.get_bottom_panel() self.output_view = OutputView(self.window, None, False) image2 = gtk.Image() image2.set_from_stock(gtk.STOCK_DND_MULTIPLE, gtk.ICON_SIZE_BUTTON) self.ui_id = panel.add_item(self.output_view, "View", image2) panel.activate_item(self.output_view)
def capture_end_execute_panel(capture, exit_code, panel, view, output_type): panel['stop'].set_sensitive(False) if output_type in ('new-document','replace-document'): doc = view.get_buffer() start = doc.get_start_iter() end = start.copy() end.forward_chars(300) mtype = gio.content_type_guess(data=doc.get_text(start, end)) lmanager = gedit.get_language_manager() language = lmanager.guess_language(doc.get_uri(), mtype) if language is not None: doc.set_language(language) view.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(gdk.Cursor(gdk.XTERM)) view.set_cursor_visible(True) view.set_editable(True) if exit_code == 0: panel.write("\n" + _("Done.") + "\n", panel.italic_tag) else: panel.write("\n" + _("Exited") + ":", panel.italic_tag) panel.write(" %d\n" % exit_code, panel.bold_tag)
def get_languages(): langs = gedit.language_manager_list_languages_sorted( gedit.get_language_manager(), True) lang_ids = [] for lang in langs: lang_ids.append(lang.get_id()) return lang_ids
def on_document_load(self, doc, *args): language = doc.get_language() if language: lang = language.get_id() if lang == 'ruby': uri = doc.get_uri_for_display() if self.get_in_rails(uri): lang = gedit.get_language_manager().get_language('rubyonrails') doc.set_language(lang)
def on_document_load(self, doc, *args): language = doc.get_language() if language: lang = language.get_id() if lang == 'ruby': uri = doc.get_uri_for_display() if self.get_in_rails(uri): lang = gedit.get_language_manager().get_language( 'rubyonrails') doc.set_language(lang)
def set_mime_type(self, lang): lang = lang.upper() if self.available_ids.has_key(lang): lang_id = self.available_ids[lang] view = self.window.get_active_view() buffer = view.get_buffer() language = gedit.get_language_manager().get_language(lang_id) buffer.set_language(language) self.close_dialog()
def _set_highlight(lang_name, view): buffer = view.get_buffer() language_manager = gedit.get_language_manager() langs = language_manager.get_language_ids() model = gtk.ListStore(str) available_ids = {} for id in langs: lang = language_manager.get_language(id) name = lang.get_name() available_ids[name.upper()] = id model.append([name]) lang_name = lang_name.upper() if available_ids.has_key(lang_name): lang_id = available_ids[lang_name] language = gedit.get_language_manager().get_language(lang_id) buffer.set_language(language) return commands.result.HIDE
def __default__(view, lang_value): """Set hightlight mode """ buffer = view.get_buffer() language_manager = gedit.get_language_manager() langs = language_manager.get_language_ids() model = gtk.ListStore(str) available_ids = {} for id in langs: lang = language_manager.get_language(id) name = lang.get_name() available_ids[name.upper()] = id model.append([name]) lang_value = lang_value.upper() if available_ids.has_key(lang_value): lang_id = available_ids[lang_value] language = gedit.get_language_manager().get_language(lang_id) buffer.set_language(language) return commands.result.HIDE
def on_document_load(self, doc, *args): language = doc.get_language() if language: lang = language.get_id() if lang == 'ruby': uri = doc.get_uri_for_display() if self.get_in_rails(uri): lang = gedit.get_language_manager().get_language('rubyonrails') doc.set_language(lang) # Uggly workarroud to call update_ui view = gedit.tab_get_from_document(doc).get_view() editable = view.get_editable() view.set_editable(not editable) view.set_editable(editable)
def on_open_from_template_activate(self, action): # create and display a file chooser dialog if this_lang.split('.')[0] == "de_DE": this_title = "Datei als Vorlage öffnen..." else: this_title = "Open Template File..." homedir = os.path.expanduser("~") chooser = gtk.FileChooserDialog(this_title,action=gtk.FILE_CHOOSER_ACTION_OPEN,buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)) chooser.set_current_folder(homedir+"/.gnome2/gedit/templates") chooser.set_default_response(gtk.RESPONSE_OK) response = chooser.run() # process the response if response == gtk.RESPONSE_OK: # create a template file object and find keywords template = TemplateFile(chooser.get_filename()) # getting the extension to specify the mime tpl_ext = os.path.splitext(chooser.get_filename()) tpl_ext = "*"+tpl_ext[1] language_manager = gedit.get_language_manager() langs = language_manager.get_language_ids() got_it = 0 for id in langs: if got_it == 1: break lang = language_manager.get_language(id) name = lang.get_name() all_ext = lang.get_globs() num_ext = len(all_ext) for ext in all_ext: if tpl_ext == ext: language = language_manager.guess_language(tpl_ext) got_it = 1 break else: language = language_manager.guess_language("txt") # create the new text # print strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()) new_text = template.create_text() # create a new gedit tab new_tab = self._window.create_tab(True) doc = new_tab.get_document() doc.set_text(new_text) doc.set_language(language) elif response == gtk.RESPONSE_CANCEL: print 'Closed, no files selected' #print dict(gtk.ListStore(str)) chooser.destroy()
def __init__(self, geditwindow, path): def fileExists(f): try: file = open(f) except IOError: exists = 0 else: exists = 1 return exists def traverseDocument(myfilename, level): if fileExists(path+myfilename): doc = minidom.parse(path+myfilename) xi_list = doc.getElementsByTagName('xi:include') for x in xi_list[:]: if fileExists(path+x.attributes["href"].value): mylevel = self.treestore.append(level, ["0", x.attributes["href"].value, gtk.Window().render_icon(gtk.STOCK_FILE, gtk.ICON_SIZE_MENU)]) if x.attributes["href"].value.rpartition('.')[2] == 'xml': traverseDocument(x.attributes["href"].value, mylevel) else: mylevel = self.treestore.append(level, ["-1",x.attributes["href"].value, gtk.Window().render_icon(gtk.STOCK_DIALOG_WARNING, gtk.ICON_SIZE_MENU)]) gtk.VBox.__init__(self) self.language_manager = gedit.get_language_manager() self.DEFAULT_LANG = 'en-US' self.thepath = "" self.geditwindow = geditwindow try: self.encoding = gedit.encoding_get_current() except: self.encoding = gedit.gedit_encoding_get_current() self.open_files = [] self.treestore = gtk.TreeStore(str,str,gtk.gdk.Pixbuf) self.treeview = gtk.TreeView(self.treestore) self.treeview.connect("row-activated", self.open_file) self.geditwindow.connect("tab-removed", self.tab_closed) self.geditwindow.connect("active-tab-changed", self.tab_changed) tree_selection = self.treeview.get_selection() tree_selection.set_mode(gtk.SELECTION_SINGLE) tree_selection.connect("changed", self.switch_to_file) self.cell = gtk.CellRendererText() self.tvcolumn = gtk.TreeViewColumn('Files') render_pixbuf = gtk.CellRendererPixbuf() self.tvcolumn.pack_start(render_pixbuf, expand=False) self.tvcolumn.add_attribute(render_pixbuf, 'pixbuf', 2) self.tvcolumn.pack_start(self.cell, expand=True) self.tvcolumn.add_attribute(self.cell, 'text', 1) self.treeview.append_column(self.tvcolumn) self.tvcolumn.set_sort_column_id(0) self.treeview.set_search_column(1) self.treeview.set_reorderable(False) scrolled_window = gtk.ScrolledWindow() scrolled_window.add(self.treeview) self.pack_start(scrolled_window) self.show_all() filename = path.rpartition('/')[2]+'.xml' bookpath = path path = path+'/'+self.DEFAULT_LANG+'/' self.thepath = path self.treestore.clear() self.open_files = [] xmldoc = minidom.parse(path+filename) level = self.treestore.append(None, ["0",filename, gtk.Window().render_icon(gtk.STOCK_FILE, gtk.ICON_SIZE_MENU)]) xi_lista = xmldoc.getElementsByTagName('xi:include') for xa in xi_lista[:]: mylevela = self.treestore.append(level, ["0",xa.attributes["href"].value, gtk.Window().render_icon(gtk.STOCK_FILE, gtk.ICON_SIZE_MENU)]) traverseDocument(xa.attributes["href"].value, mylevela)