diff --git a/include/ftxui/component/component.hpp b/include/ftxui/component/component.hpp index 679cd1b9b40f65f380e648aa793ef2fc200a2be7..0a8df0223fb0274183b7010bc287c0dfec094c22 100644 --- a/include/ftxui/component/component.hpp +++ b/include/ftxui/component/component.hpp @@ -67,9 +67,8 @@ Component Radiobox(ConstStringListRef entries, Ref<RadioboxOption> option = {}); Component Toggle(ConstStringListRef entries, int* selected); - // General slider constructor: -template <typename T> +template <typename T> Component Slider(SliderOption<T> options = {}); // Shorthand without the `SliderOption` constructor: diff --git a/include/ftxui/screen/screen.hpp b/include/ftxui/screen/screen.hpp index d8a5329db2747ce8e78404b633aec5b5b6f3eacc..b6e82fcbca535a5a0e558fb343e971cebafe7b14 100644 --- a/include/ftxui/screen/screen.hpp +++ b/include/ftxui/screen/screen.hpp @@ -2,7 +2,7 @@ #define FTXUI_SCREEN_SCREEN_HPP #include <memory> -#include <string> // for string, allocator, basic_string +#include <string> // for allocator, string, basic_string #include <vector> // for vector #include "ftxui/screen/box.hpp" // for Box diff --git a/src/ftxui/component/animation.cpp b/src/ftxui/component/animation.cpp index 69386024506bec3ee90988adfc518c5deae8c6e9..1a0a501b98c3b1857f482e3d323e685ecc1fd65a 100644 --- a/src/ftxui/component/animation.cpp +++ b/src/ftxui/component/animation.cpp @@ -1,4 +1,5 @@ -#include <cmath> // IWYU pragma: keep +#include <cmath> // for sin, pow, sqrt, cos +#include <compare> // for operator<=, operator>=, partial_ordering #include <ratio> // for ratio #include <utility> // for move diff --git a/src/ftxui/component/screen_interactive.cpp b/src/ftxui/component/screen_interactive.cpp index b77cab209a293fb507b53b7bf2233d89e0821a48..f9db0a4e3f7742318147613a1b33a306596eada4 100644 --- a/src/ftxui/component/screen_interactive.cpp +++ b/src/ftxui/component/screen_interactive.cpp @@ -1,6 +1,7 @@ #include <algorithm> // for copy, max, min #include <array> // for array -#include <chrono> // for operator-, milliseconds, operator>=, duration, common_type<>::type, time_point +#include <chrono> // for operator-, milliseconds, operator<=>, duration, common_type<>::type, time_point +#include <compare> // for operator>=, strong_ordering #include <csignal> // for signal, SIGTSTP, SIGABRT, SIGWINCH, raise, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM, __sighandler_t, size_t #include <cstdio> // for fileno, stdin #include <ftxui/component/task.hpp> // for Task, Closure, AnimationTask @@ -26,8 +27,7 @@ #include "ftxui/component/terminal_input_parser.hpp" // for TerminalInputParser #include "ftxui/dom/node.hpp" // for Node, Render #include "ftxui/dom/requirement.hpp" // for Requirement -#include "ftxui/screen/string.hpp" -#include "ftxui/screen/terminal.hpp" // for Size, Dimensions +#include "ftxui/screen/terminal.hpp" // for Dimensions, Size #if defined(_WIN32) #define DEFINE_CONSOLEV2_PROPERTIES @@ -107,7 +107,7 @@ void EventListener(std::atomic<bool>* quit, Sender<Task> out) { continue; std::wstring wstring; wstring += key_event.uChar.UnicodeChar; - for(auto it : to_string(wstring)) { + for (auto it : to_string(wstring)) { parser.Add(it); } } break; diff --git a/src/ftxui/component/slider_test.cpp b/src/ftxui/component/slider_test.cpp index 12f60ce8dfe12d9cae76ca13ca015b7ab3ec0a8f..98a8a19908062dfa7b50379fb7cbe7eb2bd5a88f 100644 --- a/src/ftxui/component/slider_test.cpp +++ b/src/ftxui/component/slider_test.cpp @@ -1,12 +1,14 @@ -#include <gtest/gtest.h> // for AssertionResult, Message, TestPartResult, Test, EXPECT_TRUE, EXPECT_EQ, SuiteApiResolver, TestInfo (ptr only), EXPECT_FALSE, TEST, TestFactoryImpl +#include <gtest/gtest.h> // for AssertionResult, Message, TestPartResult, Test, EXPECT_EQ, EXPECT_TRUE, TestInfo (ptr only), EXPECT_FALSE, TEST +#include <stddef.h> // for size_t #include <array> // for array #include <ftxui/component/mouse.hpp> // for Mouse, Mouse::Left, Mouse::Pressed, Mouse::Released -#include <ftxui/dom/elements.hpp> // for GaugeDirection, GaugeDirection::Down, GaugeDirection::Left, GaugeDirection::Right, GaugeDirection::Up -#include <memory> // for __shared_ptr_access, shared_ptr, allocator +#include <ftxui/dom/elements.hpp> // for GaugeDirection, GaugeDirection::Down, GaugeDirection::Left, GaugeDirection::Right, GaugeDirection::Up, frame +#include <memory> // for shared_ptr, __shared_ptr_access, allocator +#include <string> // for to_string -#include "ftxui/component/component.hpp" // for Slider +#include "ftxui/component/component.hpp" // for Slider, Vertical, operator|= #include "ftxui/component/component_base.hpp" // for ComponentBase -#include "ftxui/component/event.hpp" // for Event +#include "ftxui/component/event.hpp" // for Event, Event::ArrowDown #include "ftxui/dom/node.hpp" // for Render #include "ftxui/screen/screen.hpp" // for Screen @@ -133,7 +135,7 @@ TEST(SliderTest, Up) { TEST(SliderTest, Focus) { static std::array<int, 10> values; auto container = Container::Vertical({}); - for(size_t i = 0; i<values.size(); ++i) { + for (size_t i = 0; i < values.size(); ++i) { container->Add(Slider(std::to_string(i), &values[i])); } container |= frame; @@ -141,45 +143,45 @@ TEST(SliderTest, Focus) { Screen screen(10, 3); Render(screen, container->Render()); - EXPECT_EQ(screen.at(0, 0), "0"); // Select 0 + EXPECT_EQ(screen.at(0, 0), "0"); // Select 0 EXPECT_EQ(screen.at(0, 1), "1"); EXPECT_EQ(screen.at(0, 2), "2"); EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); Render(screen, container->Render()); EXPECT_EQ(screen.at(0, 0), "0"); - EXPECT_EQ(screen.at(0, 1), "1"); // Select 1 + EXPECT_EQ(screen.at(0, 1), "1"); // Select 1 EXPECT_EQ(screen.at(0, 2), "2"); EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); Render(screen, container->Render()); EXPECT_EQ(screen.at(0, 0), "1"); - EXPECT_EQ(screen.at(0, 1), "2"); // Select 2 + EXPECT_EQ(screen.at(0, 1), "2"); // Select 2 EXPECT_EQ(screen.at(0, 2), "3"); - EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 3 - EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 4 - EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 5 - EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 6 + EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 3 + EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 4 + EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 5 + EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 6 EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); Render(screen, container->Render()); EXPECT_EQ(screen.at(0, 0), "6"); - EXPECT_EQ(screen.at(0, 1), "7"); // Select 7 + EXPECT_EQ(screen.at(0, 1), "7"); // Select 7 EXPECT_EQ(screen.at(0, 2), "8"); EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); Render(screen, container->Render()); EXPECT_EQ(screen.at(0, 0), "7"); - EXPECT_EQ(screen.at(0, 1), "8"); // Select 8 + EXPECT_EQ(screen.at(0, 1), "8"); // Select 8 EXPECT_EQ(screen.at(0, 2), "9"); EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); Render(screen, container->Render()); EXPECT_EQ(screen.at(0, 0), "7"); EXPECT_EQ(screen.at(0, 1), "8"); - EXPECT_EQ(screen.at(0, 2), "9"); // Select 9 - + EXPECT_EQ(screen.at(0, 2), "9"); // Select 9 + EXPECT_FALSE(container->OnEvent(Event::ArrowDown)); } diff --git a/src/ftxui/dom/scroll_indicator.cpp b/src/ftxui/dom/scroll_indicator.cpp index 3111b17fd2b4a7d79ef189919a9dfcb1998d04e0..753b2397745a73626829c9415a721a286ab30eef 100644 --- a/src/ftxui/dom/scroll_indicator.cpp +++ b/src/ftxui/dom/scroll_indicator.cpp @@ -27,7 +27,7 @@ Element vscroll_indicator(Element child) { } void SetBox(Box box) override { - Node::SetBox(box); + box_ = box; box.x_max--; children_[0]->SetBox(box); } diff --git a/src/ftxui/dom/scroll_indicator_test.cpp b/src/ftxui/dom/scroll_indicator_test.cpp index b49d3039043226b701916037e0200122faa3cca6..471377253280d20fccf77e55b2b378d0961a1968 100644 --- a/src/ftxui/dom/scroll_indicator_test.cpp +++ b/src/ftxui/dom/scroll_indicator_test.cpp @@ -109,7 +109,7 @@ namespace { Element MakeHorizontalFlexboxList(int n) { Elements list; for (int i = 0; i < n; ++i) { - list.push_back(text(std::to_string(i%10))); + list.push_back(text(std::to_string(i % 10))); } return flexbox(std::move(list)) | vscroll_indicator | yframe | border; } @@ -194,7 +194,7 @@ TEST(ScrollIndicator, HorizontalFlexbox) { "╰────╯"); } -} +} // namespace } // namespace ftxui diff --git a/src/ftxui/screen/screen.cpp b/src/ftxui/screen/screen.cpp index 21a93cab550020761ce024aa00fe040a424f5b5d..a358966fb7b2510bff9b84e0fd181bce9f4a0738 100644 --- a/src/ftxui/screen/screen.cpp +++ b/src/ftxui/screen/screen.cpp @@ -49,6 +49,7 @@ void WindowsEmulateVT100Terminal() { } #endif +// NOLINTNEXTLINE(readability-function-cognitive-complexity) void UpdatePixelStyle(std::stringstream& ss, Pixel& previous, const Pixel& next) {