def wrap(self, context, abbr):
     # Set up the config variables
     if abbr:
         editor = ZenEditor(context)
         return zencoding.run_action('wrap_with_abbreviation', editor, abbr)
     else:
         return False
示例#2
0
 def __init_attributes(self, editor):
     self.__editor = editor
     from zen_editor import ZenEditor
     self.__zeditor = ZenEditor(self, editor)
     from os.path import join
     self.__gui = editor.get_gui_object(globals(), join("GUI", "GUI.glade"))
     return
示例#3
0
文件: plugin.py 项目: rizarsyi/devon
 def activate(self, window):
     actions = [
       ('ZenCodingMenuAction',     None, '_Zen Coding',                  None,            "Zen Coding tools",                            None),
       ('ZenCodingExpandAction',   None, '_Expand abbreviation',         '<Shift><Alt>E',        "Expand abbreviation to raw HTML/CSS",         self.expand_abbreviation),
       ('ZenCodingExpandWAction',  None, 'E_xpand dynamic abbreviation...', '<Ctrl><Alt>E',   "Dynamically expand abbreviation as you type",           self.expand_with_abbreviation),
       ('ZenCodingWrapAction',     None, '_Wrap with abbreviation...',   '<Shift><Alt>W', "Wrap with code expanded from abbreviation",   self.wrap_with_abbreviation),
       ('ZenCodingInwardAction',   None, 'Balance tag _inward',          '<Ctrl><Alt>I',   "Select inner tag's content",                  self.match_pair_inward),
       ('ZenCodingOutwardAction',  None, 'Balance tag _outward',         '<Ctrl><Alt>O',   "Select outer tag's content",                  self.match_pair_outward),
       ('ZenCodingMergeAction',    None, '_Merge lines',                 '<Ctrl><Alt>M',   "Merge all lines of the current selection",    self.merge_lines),
       ('ZenCodingPrevAction',     None, '_Previous edit point',         '<Alt>Left',      "Place the cursor at the previous edit point", self.prev_edit_point),
       ('ZenCodingNextAction',     None, '_Next edit point',             '<Alt>Right',     "Place the cursor at the next edit point",     self.next_edit_point),
       ('ZenCodingRemoveAction',   None, '_Remove tag',                  '<Ctrl><Alt>R',   "Remove a tag",                                self.remove_tag),
       ('ZenCodingSplitAction',    None, 'Split or _join tag',           '<Ctrl><Alt>J',   "Toggle between single and double tag",        self.split_join_tag),
       ('ZenCodingCommentAction',  None, 'Toggle _comment',              '<Ctrl><Alt>C',   "Toggle an XML or HTML comment",               self.toggle_comment)
     ]
     windowdata = dict()
     window.set_data("ZenCodingPluginDataKey", windowdata)
     windowdata["action_group"] = gtk.ActionGroup("GeditZenCodingPluginActions")
     windowdata["action_group"].add_actions(actions, window)
     manager = window.get_ui_manager()
     manager.insert_action_group(windowdata["action_group"], -1)
     windowdata["ui_id"] = manager.add_ui_from_string(zencoding_ui_str)
     window.set_data("ZenCodingPluginInfo", windowdata)
     self.editor = ZenEditor()
     error = self.editor.get_user_settings_error()
     if error:
         md = gtk.MessageDialog(window, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR,
             gtk.BUTTONS_CLOSE, "There is an error in user settings:")
         message = "{0} on line {1} at character {2}\n\nUser settings will not be available."
         md.set_title("Zen Coding error")
         md.format_secondary_text(message.format(error['msg'], error['lineno'], error['offset']))
         md.run()
         md.destroy()
示例#4
0
def act(controller, bundle, options):
    context = tea.get_context(controller)
    action_name = tea.get_option(options, 'action', '')
    editor = ZenEditor(context, bundle)

    try:
        return zencoding.run_action(action_name, editor)
    except zencoding.utils.ZenError:
        tea.say(context, 'Error while performing Zen Coding action',
                sys.exc_info()[1].value)
    except:
        msg_writer = SimpleWriter()
        msg = traceback.print_exc(file=msg_writer)
        tea.say(context, 'Runtime error', msg_writer.get())
示例#5
0
def act(context, actionObject, action_name, undo_name=None):
    zen_editor = ZenEditor(context, actionObject)

    try:
        if action_name == 'wrap_with_abbreviation':
            abbr = actionObject.userInput().stringValue()
            if abbr:
                return zencoding.run_action(action_name, zen_editor, abbr)
        else:
            return zencoding.run_action(action_name, zen_editor)
    except zencoding.utils.ZenError:
        tea.say(context, 'Error while performing Zen Coding action',
                sys.exc_info()[1].value)
    except:
        msg_writer = SimpleWriter()
        msg = traceback.print_exc(file=msg_writer, limit=5)
        tea.say(context, 'Runtime error', msg_writer.get())

    return False
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys
import re
import zencoding
import zencoding.utils
from zen_editor import ZenEditor

editor = ZenEditor()
"""
In order to make "Expand Abbreviation" more natural to
TextMate's bundle system we have to forget about predefined Zen Coding actions
and write our own
"""

cur_line = os.getenv('TM_CURRENT_LINE', '')
cur_index = int(os.getenv('TM_LINE_INDEX', 0))
line = cur_line[0:cur_index]

abbr = os.getenv('TM_SELECTED_TEXT', '')
if not abbr:
    abbr = zencoding.utils.extract_abbreviation(line)

output = zencoding.utils.escape_text(
    line) + '$0' + zencoding.utils.escape_text(cur_line[cur_index:])

if abbr:
    try:
        result = line[0:-len(abbr)] + zencoding.expand_abbreviation(
示例#7
0
    def __init__(self, window):

        # window
        self.window = window

        # menu items
        actions = [
            ('ZenCodingMenuAction', None, '_Zen Coding', None,
             "Zen Coding tools", None),
            ('ZenCodingExpandAction', None, '_Expand abbreviation', '<Ctrl>E',
             "Expand abbreviation to raw HTML/CSS", self.expand_abbreviation),
            ('ZenCodingExpandWAction', None, 'E_xpand with abbreviation...',
             '<Ctrl><Alt>E', "Type in an abbreviation to expand",
             self.expand_with_abbreviation),
            ('ZenCodingWrapAction', None, '_Wrap with abbreviation...',
             '<Ctrl><Shift>E', "Wrap with code expanded from abbreviation",
             self.wrap_with_abbreviation),
            ('ZenCodingZenifyAction', None, '_Zenify', None,
             "Reduce to abbreviation", None),
            ('ZenCodingZenify0Action', None, '_Tag names', '<Ctrl><Alt>Z',
             "Reduce to tag names only", self.zenify0),
            ('ZenCodingZenify1Action', None, '  + _Ids and classes', None,
             "Reduce with ids and classes", self.zenify1),
            ('ZenCodingZenify2Action', None, '    + All other _attributes',
             None, "Reduce with all attributes", self.zenify2),
            ('ZenCodingZenify3Action', None, '      + _Values', None,
             "Reduce with all attributes and values", self.zenify3),
            ('LoremIpsumAction', None, '_Lorem ipsum...', '<Ctrl><Alt>X',
             "Insert a lorem ipsum string", self.lorem_ipsum),
            ('ZenCodingInwardAction', None, 'Select _inward', '<Ctrl><Alt>I',
             "Select inner tag's content", self.match_pair_inward),
            ('ZenCodingOutwardAction', None, 'Select _outward', '<Ctrl><Alt>O',
             "Select outer tag's content", self.match_pair_outward),
            ('ZenCodingPTagAction', None, 'Previous tag', '<Ctrl><Alt>Up',
             "Select the previous tag in HTML code", self.prev_tag),
            ('ZenCodingNTagAction', None, 'Next tag', '<Ctrl><Alt>Down',
             "Select the next tag in HTML code", self.next_tag),
            ('ZenCodingPNodeAction', None, 'Previous node', '<Ctrl><Alt>Left',
             "Select the previous HTML node", self.prev_node),
            ('ZenCodingNNodeAction', None, 'Next node', '<Ctrl><Alt>Right',
             "Select the next HTML node", self.next_node),
            ('ZenCodingPrevAction', None, '_Previous edit point', '<Alt>Left',
             "Place the cursor at the previous edit point",
             self.prev_edit_point),
            ('ZenCodingNextAction', None, '_Next edit point', '<Alt>Right',
             "Place the cursor at the next edit point", self.next_edit_point),
            ('ZenCodingSizeAction', None, 'Update image _size', '<Ctrl><Alt>S',
             "Update image size tag from file", self.update_image_size),
            ('ZenCodingDataAction', None, 'Toggle image url/da_ta',
             '<Ctrl><Alt>A', "Toggle between image url and data",
             self.encode_decode_base64),
            ('ZenCodingMergeAction', None, '_Merge lines', '<Ctrl><Alt>M',
             "Merge all lines of the current selection", self.merge_lines),
            ('ZenCodingRemoveAction', None, '_Remove tag', '<Ctrl><Alt>R',
             "Remove a tag", self.remove_tag),
            ('ZenCodingSplitAction', None, 'Split or _join tag',
             '<Ctrl><Alt>J', "Toggle between single and double tag",
             self.split_join_tag),
            ('ZenCodingCommentAction', None, 'Toggle _comment', '<Ctrl><Alt>C',
             "Toggle an XML or HTML comment", self.toggle_comment),
            ('ZenCodingSettingsAction', None, 'E_dit settings...', None,
             "Customize snippets and abbreviations", self.edit_settings)
        ]
        windowdata = dict()
        self.window.set_data("ZenCodingPluginDataKey", windowdata)
        windowdata["action_group"] = gtk.ActionGroup(
            "GeditZenCodingPluginActions")
        windowdata["action_group"].add_actions(actions)
        manager = self.window.get_ui_manager()
        manager.insert_action_group(windowdata["action_group"], -1)
        windowdata["ui_id"] = manager.add_ui_from_string(zencoding_ui_str)
        self.window.set_data("ZenCodingPluginInfo", windowdata)

        # zen coding
        self.modified = None
        self.editor = ZenEditor(self.window)