a1581eca87
Summary: This was motivated by t7518166. checkCpp crashes on db_test.cc because the file is too big :( Couple of changes: * Added clang-format linter. Now we can catch all code that is not formatted correctly. * Added Howtoeven in our list of linters * Replaced cpplint with flint * Removed checkCpp lint. Nobody ownes it and it doesn't work on db_test.cc Test Plan: Made a random lint error and `arc lint`. Saw an error. Reviewers: yhchiang, kradhakrishnan, anthony, sdong Reviewed By: sdong Subscribers: dhruba, leveldb Differential Revision: https://reviews.facebook.net/D41949
53 lines
1.5 KiB
PHP
53 lines
1.5 KiB
PHP
<?php
|
|
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
// This source code is licensed under the BSD-style license found in the
|
|
// LICENSE file in the root directory of this source tree. An additional grant
|
|
// of patent rights can be found in the PATENTS file in the same directory.
|
|
|
|
final class FbcodeClangFormatLinter extends BaseDirectoryScopedFormatLinter {
|
|
|
|
const LINT_FORMATTING = 1;
|
|
const CLANG_FORMAT_BINARY = '/mnt/vol/engshare/admin/scripts/clang-format';
|
|
|
|
protected function getPathsToLint() {
|
|
return array('');
|
|
}
|
|
|
|
public function getLinterName() {
|
|
return 'CLANG_FORMAT';
|
|
}
|
|
|
|
public function getLintSeverityMap() {
|
|
return array(
|
|
self::LINT_FORMATTING => ArcanistLintSeverity::SEVERITY_ADVICE,
|
|
);
|
|
}
|
|
|
|
public function getLintNameMap() {
|
|
return array(
|
|
self::LINT_FORMATTING => pht('Changes are not clang-formatted'),
|
|
);
|
|
}
|
|
|
|
protected function getFormatFuture($path, array $changed) {
|
|
$args = "";
|
|
foreach ($changed as $key => $value) {
|
|
$args .= " --lines=$key:$key";
|
|
}
|
|
|
|
return new ExecFuture(
|
|
"%s %s $args",
|
|
self::CLANG_FORMAT_BINARY,
|
|
$this->getEngine()->getFilePathOnDisk($path));
|
|
}
|
|
|
|
protected function getLintMessage($diff) {
|
|
$link_to_clang_format =
|
|
"[[ http://fburl.com/clang-format | clang-format ]]";
|
|
return <<<LINT_MSG
|
|
Changes in this file were not formatted using $link_to_clang_format.
|
|
Please run build_tools/format-diff.sh or `make format`
|
|
LINT_MSG;
|
|
}
|
|
}
|