diff options
author | Francois Ferrand <thetypz@gmail.com> | 2020-04-23 15:56:47 +0200 |
---|---|---|
committer | Francois Ferrand <francois.ferrand@faurecia.com> | 2020-05-15 16:38:25 +0200 |
commit | 4db94094b469b4715d08ef37f1799bf3ea7ca8ea (patch) | |
tree | 95f6a805fc0f9134b1c30a67b9d430bbb06258c0 /clang/unittests/Format/FormatTestJS.cpp | |
parent | 76c5f277f25e334404aa44ea0aafd674a627ab74 (diff) | |
download | llvm-4db94094b469b4715d08ef37f1799bf3ea7ca8ea.zip llvm-4db94094b469b4715d08ef37f1799bf3ea7ca8ea.tar.gz llvm-4db94094b469b4715d08ef37f1799bf3ea7ca8ea.tar.bz2 |
clang-format: support aligned nested conditionals formatting
Summary:
When multiple ternary operators are chained, e.g. like an if/else-if/
else-if/.../else sequence, clang-format will keep aligning the colon
with the question mark, which increases the indent for each
conditionals:
int a = condition1 ? result1
: condition2 ? result2
: condition3 ? result3
: result4;
This patch detects the situation (e.g. conditionals used in false branch
of another conditional), to avoid indenting in that case:
int a = condition1 ? result1
: condition2 ? result2
: condition3 ? result3
: result4;
When BreakBeforeTernaryOperators is false, this will format like this:
int a = condition1 ? result1 :
condition2 ? result2 :
conditino3 ? result3 :
result4;
This formatting style is referenced here:
https://www.fluentcpp.com/2018/02/27/replace-else-if-ternary-operator/
and here:
https://marcmutz.wordpress.com/2010/10/14/top-5-reasons-you-should-love-your-ternary-operator/
Reviewers: krasimir, djasper, klimek, MyDeveloperDay
Reviewed By: MyDeveloperDay
Subscribers: hokein, dyung, MyDeveloperDay, acoomans, cfe-commits
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D50078
Diffstat (limited to 'clang/unittests/Format/FormatTestJS.cpp')
0 files changed, 0 insertions, 0 deletions