""" smashlib.plugins.interface
"""

class PluginInterface(object):
    def __repr__(self):
        return "plugin interface"

    __str__ = __repr__

    def __init__(self, smash):
        self.smash = smash

    @property
    def edit(self):
        self.smash.shell.run_cell('ed_config')

    @property
    def __doc__(self):
        self.update()

    def update(self):
        tmp = self.smash._installed_plugins
        def fxn(name):
            return self.smash._installed_plugins[name]
        for name in tmp:
            prop=property(lambda himself: fxn(name))
            setattr(self.__class__,name,prop)
        whitelist = ['edit','smash', 'update']
        for x in dir(self):
            if not x.startswith('_') and \
                   x not in tmp and \
                   x not in whitelist:
                raise ValueError("interface is not clean")

@@ -356,20 +356,131 @@
 def 
-update(self)
+__qmark__(self):%0A%0A        out = %5B'Smash Plugins: (%7B0%7D total)'.format(len(self._plugins))%5D%0A        for nick in self._plugins
 :%0A  
@@ -489,35 +489,201 @@
     
+ 
-tmp = self.smash._installed
+   out += %5B'   : %7B0%7D'.format(nick)%5D%0A        return '%5Cn'.join(out)%0A%0A    @property%0A    def _plugins(self):%0A        return self.smash._installed_plugins%0A%0A    def update(self):%0A        tmp = self.
 _plu

add __qmark__ protocol for plugins-interface