benhamilton added a comment.

Thanks, applied your suggested change.



================
Comment at: lib/Format/ContinuationIndenter.cpp:899
     if (!State.Stack.back().ObjCSelectorNameFound) {
+      unsigned MinIndent =
+          (Style.IndentWrappedFunctionNames
----------------
djasper wrote:
> I think I'd now find this slightly easier to read as:
> 
>   unsigned MinIndent = State.Stack.back().Indent;
>   if (Style.IndentWrappedFunctionNames)
>     MinIndent = std::max(MinIndent, State.FirstIndent + 
> Style.ContinuationIndentWidth);
OK, done.


================
Comment at: lib/Format/ContinuationIndenter.cpp:904
+               : State.Stack.back().Indent);
       if (NextNonComment->LongestObjCSelectorName == 0)
+        return MinIndent;
----------------
djasper wrote:
> Does this if actually change the behavior in any way? With 
> LongestObjCSelectorName being 0, isn't that:
> 
>   return MinIndent +
>          std::max(0, ColumnWidth) - ColumnWidth;
> 
> (and with ColumnWidth being >= 0, this should be just MinIndent)
The `- ColumnWidth` part is only for the case where `LongestObjCSelectorName` 
is *not* 0. If it's 0, we return `MinIndent` which ensures we obey 
`Style.IndentWrappedFunctionNames`.

The problem with the code before this diff is when `LongestObjCSelectorName` 
was 0, we ignored `Style.IndentWrappedFunctionNames` and always returned 
`State.Stack.back().Indent` regardless of that setting.

After this diff, when `LongestObjCSelectorName` is 0 (i.e., this is either the 
first part of the selector or a selector which is not colon-aligned due to 
block formatting), we change the behavior to indent to at least 
`State.FirstIndent + Style.ContinuationIndentWidth`, like all other indentation 
logic in this file.

I've added some comments explaining what's going on, since this code is quite 
complex.


Repository:
  rC Clang

https://reviews.llvm.org/D44994



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to