mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-14 11:45:38 +02:00
Bug 546221 - Fix exception for nested namespaces
Change-Id: I6de8844a910350a0e834a8f38e1c17d4eba32842 Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com>
This commit is contained in:
parent
838a12d8f4
commit
bf0b7a76ed
2 changed files with 21 additions and 4 deletions
|
@ -1127,15 +1127,22 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor,
|
||||||
scribe.space();
|
scribe.space();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (peekNextToken() == Token.tCOLONCOLON) {
|
||||||
|
// namespace <name>::<name>
|
||||||
|
scribe.printNextToken(Token.tCOLONCOLON, false);
|
||||||
|
} else {
|
||||||
// namespace <name>
|
// namespace <name>
|
||||||
scribe.printNextToken(Token.t_namespace, false);
|
scribe.printNextToken(Token.t_namespace, false);
|
||||||
scribe.space();
|
scribe.space();
|
||||||
formatLeadingAttributes(node, ICPPASTAttributeList.TYPE_FILTER);
|
formatLeadingAttributes(node, ICPPASTAttributeList.TYPE_FILTER);
|
||||||
|
}
|
||||||
boolean isNamedNamespace = !CPPVisitor.isAnonymousNamespace(node);
|
boolean isNamedNamespace = !CPPVisitor.isAnonymousNamespace(node);
|
||||||
if (isNamedNamespace) {
|
if (isNamedNamespace) {
|
||||||
IASTName name = node.getName();
|
IASTName name = node.getName();
|
||||||
name.accept(this);
|
name.accept(this);
|
||||||
}
|
}
|
||||||
|
if (peekNextToken() == Token.tCOLONCOLON)
|
||||||
|
return PROCESS_CONTINUE;
|
||||||
formatAttributes(node, isNamedNamespace, false, IGCCASTAttributeList.TYPE_FILTER);
|
formatAttributes(node, isNamedNamespace, false, IGCCASTAttributeList.TYPE_FILTER);
|
||||||
|
|
||||||
// member declarations
|
// member declarations
|
||||||
|
|
|
@ -4081,6 +4081,16 @@ public class CodeFormatterTest extends BaseUITestCase {
|
||||||
fOptions.put(DefaultCodeFormatterConstants.FORMATTER_USE_COMMENT_TAG, true);
|
fOptions.put(DefaultCodeFormatterConstants.FORMATTER_USE_COMMENT_TAG, true);
|
||||||
fOptions.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_ON_TAG, "@formatter:on");
|
fOptions.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_ON_TAG, "@formatter:on");
|
||||||
fOptions.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_OFF_TAG, "@formatter:off");
|
fOptions.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_OFF_TAG, "@formatter:off");
|
||||||
|
}
|
||||||
|
|
||||||
|
//namespace AA::BB {
|
||||||
|
//int a;
|
||||||
|
//}
|
||||||
|
|
||||||
|
//namespace AA::BB {
|
||||||
|
//int a;
|
||||||
|
//}
|
||||||
|
public void testNestedNamespace_Bug546221() throws Exception {
|
||||||
assertFormatterResult();
|
assertFormatterResult();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue