def sort_items(self,items,args=False):
    if self.settings['sort'].lower() == 'src': return
    def alpha(i):
        return i.name
    def permission(i):
        if args:
            if i.intent == 'in': return 'b'
            if i.intent == 'inout': return 'c'
            if i.intent == 'out': return 'd'
            if i.intent == '': return 'e'
        perm = getattr(i, 'permission', '')
        if perm == 'public': return 'b'
        if perm == 'protected': return 'c'
        if perm == 'private': return 'd'
        return 'a'
    def permission_alpha(i):
        return permission(i) + '-' + i.name
    def itype(i):
        if i.obj == 'variable':
            retstr = i.vartype
            if retstr == 'class': retstr = 'type'
            if i.kind: retstr = retstr + '-' + str(i.kind)
            if i.strlen: retstr = retstr + '-' + str(i.strlen)
            if i.proto:
                retstr = retstr + '-' + i.proto[0]
            return retstr
        elif i.obj == 'proc':
            if i.proctype != 'Function':
                return i.proctype.lower()
            else:
                return i.proctype.lower() + '-' + itype(i.retvar)
        else:
            return i.obj
    def itype_alpha(i):
        return itype(i) + '-' + i.name
    if self.settings['sort'].lower() == 'alpha':
        items.sort(key=alpha)
    elif self.settings['sort'].lower() == 'permission':
        items.sort(key=permission)
    elif self.settings['sort'].lower() == 'permission-alpha':
        items.sort(key=permission_alpha)
    elif self.settings['sort'].lower() == 'type':
        items.sort(key=itype)
    elif self.settings['sort'].lower() == 'type-alpha':
        items.sort(key=itype_alpha)