示例#1
0
文件: __init__.py 项目: wwdxfa/gmate
    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)
示例#2
0
    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()
示例#3
0
 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)
示例#4
0
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)
示例#5
0
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)
示例#6
0
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
示例#7
0
 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)
示例#9
0
文件: __init__.py 项目: wwdxfa/gmate
    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()
示例#10
0
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 _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
示例#12
0
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
示例#13
0
 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)
示例#14
0
	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()
示例#15
0
 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)
示例#16
0
    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)