Index: lib/Format/TokenAnnotator.cpp =================================================================== --- lib/Format/TokenAnnotator.cpp +++ lib/Format/TokenAnnotator.cpp @@ -413,7 +413,8 @@ if (Contexts.back().ColonIsForRangeExpr || (Contexts.size() == 1 && !Line.First->isOneOf(tok::kw_enum, tok::kw_case)) || - Contexts.back().ContextKind == tok::l_paren) { + Contexts.back().ContextKind == tok::l_paren || + Contexts.back().ContextKind == tok::l_square) { Tok->Type = TT_JsTypeColon; break; } Index: unittests/Format/FormatTestJS.cpp =================================================================== --- unittests/Format/FormatTestJS.cpp +++ unittests/Format/FormatTestJS.cpp @@ -669,5 +669,9 @@ "}"); } +TEST_F(FormatTestJS, IndexSignature) { + verifyFormat("var x: {[k: string]: v};"); +} + } // end namespace tooling } // end namespace clang