ilya-biryukov added a comment.

Sorry for the delay, I'll make sure to take a close look at the change tomorrow.

As mentioned in offline discussions, doing this through `clang-format` seems 
like the right approach. At the same the markers we put into the files to drive 
formatting seem fragile, giving results we don't want.
The biggest issue that I can see is that it's super-hard to predict what 
`clang-format` is going to do in each case and even harder to certify that this 
should work in general case.

Intuitively, moving the logic to `clang-format` seems like the right thing to 
do in the long run (e.g. introducing a special cursor marker into clang-format, 
similar a code completion marker used by clang or something similar).
OTOH, it's hard for me to asses the amount of work needed to do this inside 
`clang-format` itself (not a `clang-format` expert), and the patch is 
definitely an improvement to what we had before (I've been using it for awhile 
now). The problems do get fixed, so I'm totally happy with it landing as is if 
we commit to fixing those nasty cases until we run out of them.

PS. In the meantime, I've found another case where newline gets eaten:

  class SyntaxTreeTest {
  public:
    ^ 
  };

**Expected:** newline is added.
**Actual:** does not let to add a newline (the added newline is removed).


Repository:
  rCTE Clang Tools Extra

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60605/new/

https://reviews.llvm.org/D60605



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

Reply via email to