clang-format: [JS] options for arrow functions.
authorMartin Probst <martin@probst.io>
Fri, 24 Jan 2020 10:30:31 +0000 (11:30 +0100)
committerMartin Probst <martin@probst.io>
Mon, 27 Jan 2020 15:27:25 +0000 (16:27 +0100)
commit02656f29abda4eedd22e3b2b30bf2f422983514e
treed78fe4446fe18495b1f4c4a375af37b6a96b6dbb
parent84c3f05c8e3e28fd58c458f842e721bbbaa837b2
clang-format: [JS] options for arrow functions.

Summary:
clang-format currently always wraps the body of non-empty arrow
functions:

    const x = () => {
      z();
    };

This change implements support for the `AllowShortLambdasOnASingleLine`
style options, controlling the indent style for arrow function bodies
that have one or fewer statements. SLS_All puts all on a single line,
SLS_Inline only arrow functions used in an inline position.

    const x = () => { z(); };

Multi-statement arrow functions continue to be wrapped. Function
expressions (`a = function() {}`) and function/method declarations are
unaffected as well.

Reviewers: krasimir

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D73335
clang/lib/Format/Format.cpp
clang/lib/Format/TokenAnnotator.cpp
clang/unittests/Format/FormatTestJS.cpp