Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add cpplint to CI #400

Merged
merged 15 commits into from
Jan 18, 2020
Merged
14 changes: 14 additions & 0 deletions CPPLINT.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
set noparent
linelength=120 # As in .clang-format

# Non-used filters
filter=-build/include_order # Requires unusual include order that encourages creating not self-contained headers
filter=-readability/nolint # Conficts with clang-tidy
filter=-runtime/references # Requires fundamental change of API, don't see need for this
filter=-whitespace/blank_line # Unnecessarily strict with blank lines that otherwise help with readability
filter=-whitespace/parens,-whitespace/braces # Conflict with clang-format

# Filters to be included in future
filter=-whitespace/indent,-whitespace/comments,-readability/braces,-build/include_what_you_use
filter=-legal/copyright # Remove this line after Version 1.9

9 changes: 8 additions & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@ jobs:
- script: git diff --exit-code --color
displayName: Check tidy

- job: CppLint
pool:
vmImage: 'ubuntu-latest'
container: sharaku/cpplint:latest
steps:
- bash: cpplint --counting=detailed --recursive examples include/CLI
displayName: Checking against google style guide

# TODO: Fix macOS error and windows warning in c++17 mode
- job: Native
strategy:
Expand Down Expand Up @@ -97,4 +105,3 @@ jobs:
- template: .ci/azure-cmake.yml
- template: .ci/azure-build.yml
- template: .ci/azure-test.yml

1 change: 1 addition & 0 deletions examples/subcom_in_files/subcommand_a.hpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
// ===================================================================
// subcommand_a.hpp
// ===================================================================
Expand Down
4 changes: 1 addition & 3 deletions include/CLI/App.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2657,9 +2657,7 @@ class App {
auto res = op->get_flag_value(arg_name, value);
op->add_result(res);
parse_order_.push_back(op.get());
}
// --this=value
else if(!value.empty()) {
} else if(!value.empty()) { // --this=value
op->add_result(value, result_count);
parse_order_.push_back(op.get());
collected += result_count;
Expand Down
7 changes: 4 additions & 3 deletions include/CLI/Timer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#endif

#include <array>
#include <chrono>
#include <chrono> // NOLINT(build/c++11)
#include <functional>
#include <iostream>
#include <string>
Expand Down Expand Up @@ -87,8 +87,9 @@ class Timer {
/// This prints out a time string from a time
std::string make_time_str(double time) const {
auto print_it = [](double x, std::string unit) {
std::array<char, 50> buffer;
std::snprintf(buffer.data(), 50, "%.5g", x);
const unsigned int buffer_length = 50;
std::array<char, buffer_length> buffer;
std::snprintf(buffer.data(), buffer_length, "%.5g", x);
return buffer.data() + std::string(" ") + unit;
};

Expand Down
9 changes: 5 additions & 4 deletions include/CLI/TypeTools.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
// file LICENSE or https://github.com/CLIUtils/CLI11 for details.

#include "StringTools.hpp"
#include <cstdint>
#include <exception>
#include <memory>
#include <string>
Expand Down Expand Up @@ -595,9 +596,9 @@ template <typename T,
bool lexical_cast(const std::string &input, T &output) {
try {
std::size_t n = 0;
long long output_ll = std::stoll(input, &n, 0);
std::int64_t output_ll = std::stoll(input, &n, 0);
output = static_cast<T>(output_ll);
return n == input.size() && static_cast<long long>(output) == output_ll;
return n == input.size() && static_cast<std::int64_t>(output) == output_ll;
} catch(const std::invalid_argument &) {
return false;
} catch(const std::out_of_range &) {
Expand All @@ -614,9 +615,9 @@ bool lexical_cast(const std::string &input, T &output) {

try {
std::size_t n = 0;
unsigned long long output_ll = std::stoull(input, &n, 0);
std::uint64_t output_ll = std::stoull(input, &n, 0);
output = static_cast<T>(output_ll);
return n == input.size() && static_cast<unsigned long long>(output) == output_ll;
return n == input.size() && static_cast<std::uint64_t>(output) == output_ll;
} catch(const std::invalid_argument &) {
return false;
} catch(const std::out_of_range &) {
Expand Down
2 changes: 1 addition & 1 deletion include/CLI/Validators.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
#endif

#if defined CLI11_HAS_FILESYSTEM && CLI11_HAS_FILESYSTEM > 0
#include <filesystem>
#include <filesystem> // NOLINT(build/include)
#else
#include <sys/stat.h>
#include <sys/types.h>
Expand Down