forked from qt-creator/qt-creator
		
	C++ indenter: Enable class, struct, enum, namespace, using in functions.
Fixes incorrect indentation we got previously when they were used in a statement context.
This commit is contained in:
		@@ -72,16 +72,8 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
 | 
			
		||||
 | 
			
		||||
        switch (m_currentState.top().type) {
 | 
			
		||||
        case topmost_intro:
 | 
			
		||||
            if (tryDeclaration())
 | 
			
		||||
                break;
 | 
			
		||||
            switch (kind) {
 | 
			
		||||
            case T_NAMESPACE:   enter(namespace_start); break;
 | 
			
		||||
            case T_STRUCT:
 | 
			
		||||
            case T_UNION:
 | 
			
		||||
            case T_CLASS:       enter(class_start); break;
 | 
			
		||||
            case T_ENUM:        enter(enum_start); break;
 | 
			
		||||
            case T_USING:       enter(using_start); break;
 | 
			
		||||
            } break;
 | 
			
		||||
            tryDeclaration();
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case namespace_start:
 | 
			
		||||
            switch (kind) {
 | 
			
		||||
@@ -93,13 +85,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
 | 
			
		||||
            if (tryDeclaration())
 | 
			
		||||
                break;
 | 
			
		||||
            switch (kind) {
 | 
			
		||||
            case T_NAMESPACE:   enter(namespace_start); break;
 | 
			
		||||
            case T_RBRACE:      leave(); continue; // always nested in namespace_start
 | 
			
		||||
            case T_STRUCT:
 | 
			
		||||
            case T_UNION:
 | 
			
		||||
            case T_CLASS:       enter(class_start); break;
 | 
			
		||||
            case T_ENUM:        enter(enum_start); break;
 | 
			
		||||
            case T_USING:       enter(using_start); break;
 | 
			
		||||
            } break;
 | 
			
		||||
 | 
			
		||||
        case class_start:
 | 
			
		||||
@@ -113,11 +99,6 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
 | 
			
		||||
                break;
 | 
			
		||||
            switch (kind) {
 | 
			
		||||
            case T_RBRACE:      leave(); continue; // always nested in class_start
 | 
			
		||||
            case T_STRUCT:
 | 
			
		||||
            case T_UNION:
 | 
			
		||||
            case T_CLASS:       enter(class_start); break;
 | 
			
		||||
            case T_ENUM:        enter(enum_start); break;
 | 
			
		||||
            case T_USING:       enter(using_start); break;
 | 
			
		||||
            } break;
 | 
			
		||||
 | 
			
		||||
        case enum_start:
 | 
			
		||||
@@ -704,6 +685,24 @@ bool CodeFormatter::tryDeclaration()
 | 
			
		||||
        enter(template_start);
 | 
			
		||||
        return true;
 | 
			
		||||
 | 
			
		||||
    case T_NAMESPACE:
 | 
			
		||||
        enter(namespace_start);
 | 
			
		||||
        return true;
 | 
			
		||||
 | 
			
		||||
    case T_STRUCT:
 | 
			
		||||
    case T_UNION:
 | 
			
		||||
    case T_CLASS:
 | 
			
		||||
        enter(class_start);
 | 
			
		||||
        return true;
 | 
			
		||||
 | 
			
		||||
    case T_ENUM:
 | 
			
		||||
        enter(enum_start);
 | 
			
		||||
        return true;
 | 
			
		||||
 | 
			
		||||
    case T_USING:
 | 
			
		||||
        enter(using_start);
 | 
			
		||||
        return true;
 | 
			
		||||
 | 
			
		||||
    default:
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user