| commit | 894143c30d98b981fbfd2b91a3bd877c96b70ded | [log] [tgz] |
|---|---|---|
| author | Scott Graham <scottmg@chromium.org> | Mon Jan 07 13:56:49 2019 -0800 |
| committer | Commit Bot <commit-bot@chromium.org> | Tue Jan 08 02:46:43 2019 +0000 |
| tree | 3de7c54f04b38ada4efabeb0fcb608f8cf9c5431 | |
| parent | 45314e29d54cc2e4a6501eaec860f1b09740eb9c [diff] |
format: Fix incorrect dewrap of `if`
When `if (...stuff...) {` was exactly 81 characters, it would be
incorrectly wrapped because the trailing { wasn't being taken into
account in penalizing single line formatting.
To avoid this, pass the full suffix into the child formatter.
In a Chromium tree, diffing
gn ls-files '*.gn' '*.gni' | xargs -l1 gn format
vs.
gn ls-files '*.gn' '*.gni' | xargs -l1 /work/gn/out/gn format
results in
https://gist.github.com/sgraham/2e33ae36db6255af0be0785ea3d0b058
which are all 81 character long if statements being fixed.
Bug: gn:36
Change-Id: I5af9a62a3de4953ea0d60a85bd558281410a8f09
Reviewed-on: https://gn-review.googlesource.com/c/3621
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Petr Hosek <phosek@google.com>
Commit-Queue: Scott Graham <scottmg@google.com>
GN is a meta-build system that generates build files for Ninja. There is documentation in docs/ and a presentation on it.
You can download the latest version of GN binary for Linux, macOS and Windows.
Alternatively, you can build GN from source:
git clone https://gn.googlesource.com/gn cd gn python build/gen.py ninja -C out # To run tests: out/gn_unittests
On Windows, it is expected that cl.exe, link.exe, and lib.exe can be found in PATH, so you'll want to run from a Visual Studio command prompt, or similar.
On Linux and Mac, the default compiler is clang++, a recent version is expected to be found in PATH. This can be overridden by setting CC, CXX, and AR.
If you find a bug, you can see if it is known or report it in the bug database.
GN uses Gerrit for code review. The short version of how to patch is:
Register at https://gn-review.googlesource.com. ... edit code ... ninja -C out && out/gn_unittests
Then, to upload a change for review:
git commit git cl upload --gerrit
When revising a change, use:
git commit --amend git cl upload --gerrit
which will add the new changes to the existing code review, rather than creating a new one.
We ask that all contributors sign Google's Contributor License Agreement (either individual or corporate as appropriate, select ‘any other Google project’).
You may ask questions and follow along w/ GN‘s development on Chromium’s gn-dev@ Google Group.