MyDeveloperDay added a comment.

I really do appreciate the reviews and the comments especially regarding 
east/west/left/right/wrong ;-), I know there won't be 100% agreement, but I 
think most people who even consider clone the LLVM repo know what we mean by 
East/West. as such I'm going to leave the internal code that way for now. (and 
the name of the TokenAnalyzer Files)

However, I have added support for Left/Right and East/West in the config, but 
I'm going to refrain from adding Before/After otherwise it just gets silly 
having too many options.

Whilst I've been developing this I've tried both ways, to be honest I 
instinctively know what is meant by East Const because its the style I don't 
use personally (don't shoot me for that comment). But when taking in terms of 
Left/Right I feel I have to think about what it means quite hard. Especially as 
Right feels Wrong to me!

Let me reiterate my goal. For me the goal was to make east/west const 
conversations disappear in the same way that tab and whitespace conversations 
have disappeared (mostly) because I think those conversations are a waste of 
good conference time.

The answer should just be "use clang-format", and for me, this is part of my 
own feeling that we should "clang-format all the things". I feel the best 
compromise is to offer both, (I'll likely update the documentation to not have 
so much of a bias)

If we can agree to that, then I'll be happy in a year or so to do a poll of the 
.clang-format files in github.com and then change the internal code to match 
the majority, to me that would be the greatest measure of which should be the 
primary option.

Apart from that, I've still some work to do here, this case from @steveire is 
really stumping me. Every preprocessor branch causes a different iteration over 
the same original code and as such this is causing multiple replacements to be 
added as each pass reanalyses the original code and doesn't regenerate the code 
in between (super odd)

  verifyFormat("Foo<const Foo<int>> P;\n#if 0\n#else\n#endif", "Foo<Foo<int> 
const> P;\n#if 0\n#else\n#endif", Style);

I tried to only perform the replacement on the first pass, but alas that means 
if I put any declarations inside the preprocess clauses they actually don't get 
converted. (I'm not sure if anyone has seen this before), but its likely the 
fact that I'm using clang-format to create replacements.

In the background I've been testing this on LLVM itself (which isn't easy 
because the code isn't all clang-formatted itself, another pet peeve of mine), 
apart from the #if issue (which hits lib/Analyzer/CFG.cpp and a few other 
files) it seems to work pretty well (although I've not done a detailed 
walkthrough to see if it's missing much)

I would like to land this at some point, but cannot whilst I still have the 
#if/#else issue

Thanks for the help and the feedback, just wanted to give everyone a progress 
report.


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

https://reviews.llvm.org/D69764



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

Reply via email to