1
0
mirror of https://github.com/CLIUtils/CLI11.git synced 2025-04-28 19:53:52 +00:00

Add cpplint to CI (#400)

* Add cpplint config file

* Add cpplint to CI

* Add checks

* Add docker container tag

* Unindent container

As suggested in code review

Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>

* Fix cpplint issues

* Fix clang-format

* Include and fix modern cpplint runtime/int

* Include and fix cpplint build/include_order

* Revert "Include and fix cpplint build/include_order"

This reverts commit bddb6a2d6744c5397f387ccd03416a1ec5e29862.

* Update explanation, sort alphabetically

* Implement suggestion from code review

Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>

* Include cstdint header, prefix its symbols with std::

* Forgot std::

Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
This commit is contained in:
Christoph Bachhuber 2020-01-18 14:53:45 +01:00 committed by Henry Schreiner
parent 93c90d1d93
commit b856c0ba9c
7 changed files with 34 additions and 12 deletions

14
CPPLINT.cfg Normal file
View File

@ -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

View File

@ -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:
@ -97,4 +105,3 @@ jobs:
- template: .ci/azure-cmake.yml
- template: .ci/azure-build.yml
- template: .ci/azure-test.yml

View File

@ -1,3 +1,4 @@
#pragma once
// ===================================================================
// subcommand_a.hpp
// ===================================================================

View File

@ -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;

View File

@ -10,7 +10,7 @@
#endif
#include <array>
#include <chrono>
#include <chrono> // NOLINT(build/c++11)
#include <functional>
#include <iostream>
#include <string>
@ -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;
};

View File

@ -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>
@ -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 &) {
@ -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 &) {

View File

@ -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>