Jelajahi Sumber

feat(clang): add clang-tidy and clang-format

Douglas A 2 tahun lalu
induk
melakukan
3c284af648

TEMPAT SAMPAH
.cache/clangd/index/game.cpp.C150F2F326428F81.idx


TEMPAT SAMPAH
.cache/clangd/index/game.h.B0C89827659FF49A.idx


TEMPAT SAMPAH
.cache/clangd/index/main.cpp.DF1C7C1A0A297964.idx


+ 36 - 0
.clang-tidy

@@ -0,0 +1,36 @@
+Checks: >
+  -*,
+  bugprone-*,
+  cert-*,
+  clang-analyzer-*,
+  concurrency-*,
+  misc-*,
+  performance-*,
+  portability-*,
+  readability-*,
+  -bugprone-easily-swappable-parameters,
+  -bugprone-macro-parentheses,
+  -bugprone-reserved-identifier,-cert-dcl37-c,-cert-dcl51-cpp,
+  -cert-dcl21-cpp,
+  -misc-no-recursion,
+  -misc-non-private-member-variables-in-classes,
+  -performance-noexcept-move-constructor,
+  -performance-no-int-to-ptr,
+  -readability-braces-around-statements,
+  -readability-identifier-length,
+  -readability-magic-numbers,
+  -readability-named-parameter,
+  -readability-uppercase-literal-suffix,
+  -readability-use-anyofallof,
+WarningsAsErrors: ''
+HeaderFilterRegex: 'AK|Userland|Kernel|Tests'
+FormatStyle: none
+CheckOptions:
+  - key: bugprone-dangling-handle.HandleClasses
+    value: 'AK::StringView;AK::Span'
+  - key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
+    value: true
+  - key: readability-implicit-bool-conversion.AllowPointerConditions
+    value: true
+  - key: readability-function-cognitive-complexity.Threshold
+    value: 100 # FIXME: Lower this (30? 50?), and refactor complex functions

+ 3 - 2
CMakeLists.txt

@@ -1,7 +1,8 @@
 cmake_minimum_required(VERSION 3.0)
 
-project(breakout CXX)
-set(CMAKE_CXX_STANDARD_REQUIRED 17)
+project(breakout)
+
+set(CMAKE_CXX_STANDARD 17)
 
 
 add_subdirectory(src)

+ 12 - 0
compile_commands.json

@@ -0,0 +1,12 @@
+[
+{
+  "directory": "/home/cmte/r/breakout/build/src",
+  "command": "/usr/bin/c++ -DFMT_LOCALE -DFMT_SHARED -I\"/home/cmte/r/breakout/src/\\$$\" -I/home/cmte/r/breakout/src/{ -I/home/cmte/r/breakout/src/SDL_INCLUDE_DIRECTORIES -I/home/cmte/r/breakout/src/} -g -o CMakeFiles/breakout.dir/main.cpp.o -c /home/cmte/r/breakout/src/main.cpp",
+  "file": "/home/cmte/r/breakout/src/main.cpp"
+},
+{
+  "directory": "/home/cmte/r/breakout/build/src",
+  "command": "/usr/bin/c++ -DFMT_LOCALE -DFMT_SHARED -I\"/home/cmte/r/breakout/src/\\$$\" -I/home/cmte/r/breakout/src/{ -I/home/cmte/r/breakout/src/SDL_INCLUDE_DIRECTORIES -I/home/cmte/r/breakout/src/} -g -o CMakeFiles/breakout.dir/game.cpp.o -c /home/cmte/r/breakout/src/game.cpp",
+  "file": "/home/cmte/r/breakout/src/game.cpp"
+}
+]

+ 2 - 2
src/CMakeLists.txt

@@ -5,7 +5,7 @@ set(CMAKE_CXX_STANDARD 17)
 find_package(SDL2 REQUIRED)
 find_package(fmt REQUIRED)
 
-include_directories(${SDL_INCLUDE_DIRECTORIES})
+include_directories($ { SDL_INCLUDE_DIRECTORIES })
 add_executable(breakout main.cpp game.cpp)
 
-target_link_libraries(breakout PUBLIC fmt::fmt ${SDL2_LIBRARIES})
+target_link_libraries(breakout PUBLIC fmt::fmt $ { SDL2_LIBRARIES })

+ 34 - 40
src/game.cpp

@@ -3,64 +3,58 @@
 #include <SDL2/SDL_video.h>
 #include <fmt/core.h>
 #include <memory>
-namespace Game
-{
+namespace Game {
 
-App::App (const char *window_name, int width, int height)
+App::App(const char* window_name, int width, int height)
 {
-  m_window = std::make_unique<SDLWindow> (
-      SDL_CreateWindow (window_name, SDL_WINDOWPOS_UNDEFINED,
-                        SDL_WINDOWPOS_UNDEFINED, width, height, 0));
-  if (m_window.get ()->_window == NULL)
-    {
-      fmt::print ("Could not intialize window");
-      return;
+    m_window = std::make_unique<SDLWindow>(SDL_CreateWindow(window_name,
+        SDL_WINDOWPOS_UNDEFINED,
+        SDL_WINDOWPOS_UNDEFINED,
+        width,
+        height,
+        0));
+    if (m_window->_window == NULL) {
+        fmt::print("Could not intialize window");
+        return;
     }
 
-  m_renderer = std::make_unique<SDLRenderer> (SDL_CreateRenderer (
-      m_window.get ()->_window, -1, SDL_RENDERER_ACCELERATED));
+    m_renderer = std::make_unique<SDLRenderer>(
+        SDL_CreateRenderer(m_window->_window, -1, SDL_RENDERER_ACCELERATED));
 
-  if (!m_renderer.get ()->_renderer)
-    {
-      fmt::print ("Could not initialize renderer");
-      return;
+    if (!m_renderer->_renderer) {
+        fmt::print("Could not initialize renderer");
+        return;
     }
 
-  initialized = true;
+    initialized = true;
 }
 
-void
-App::run ()
+void App::run()
 {
-  if (!initialized)
-    {
-      fmt::print ("Game not initialized properly. Quitting");
-      return;
+    if (!initialized) {
+        fmt::print("Game not initialized properly. Quitting");
+        return;
     }
 
-  SDL_Event event;
-  for (;;)
-    {
-      while (SDL_PollEvent (&event))
-        {
-          switch (event.type)
-            {
+    SDL_Event event;
+    for (;;) {
+        while (SDL_PollEvent(&event) == 1) {
+            switch (event.type) {
             case SDL_QUIT:
-              can_quit = true;
-              break;
+                can_quit = true;
+                break;
             default:
-              break;
+                break;
             }
         }
 
-      SDL_SetRenderDrawColor (m_renderer.get ()->_renderer, 51, 51, 51, 255);
-      SDL_RenderClear (m_renderer.get ()->_renderer);
-      SDL_RenderPresent (m_renderer.get ()->_renderer);
-      SDL_Delay (16);
+        SDL_SetRenderDrawColor(m_renderer->_renderer, 51, 51, 51, 255);
+        SDL_RenderClear(m_renderer->_renderer);
+        SDL_RenderPresent(m_renderer->_renderer);
+        SDL_Delay(16);
 
-      if (can_quit)
-        {
-          return;
+        if (can_quit) {
+            return;
         }
     }
 }

+ 16 - 20
src/game.h

@@ -4,38 +4,34 @@
 #include <SDL2/SDL_video.h>
 #include <memory>
 
-namespace Game
-{
+namespace Game {
 
-struct SDLWindow
-{
-  SDL_Window *_window;
+struct SDLWindow {
+    SDL_Window* _window;
 
-  SDLWindow (SDL_Window *window) { _window = window; }
+    SDLWindow(SDL_Window* window) { _window = window; }
 
-  ~SDLWindow () { SDL_DestroyWindow (_window); }
+    ~SDLWindow() { SDL_DestroyWindow(_window); }
 };
 
-struct SDLRenderer
-{
-  SDL_Renderer *_renderer;
+struct SDLRenderer {
+    SDL_Renderer* _renderer;
 
-  SDLRenderer (SDL_Renderer *renderer) { _renderer = renderer; }
+    SDLRenderer(SDL_Renderer* renderer) { _renderer = renderer; }
 
-  ~SDLRenderer () { SDL_DestroyRenderer (_renderer); }
+    ~SDLRenderer() { SDL_DestroyRenderer(_renderer); }
 };
 
-class App
-{
+class App {
 public:
-  App (const char *window_name, int width, int height);
-  void run ();
+    App(const char* window_name, int width, int height);
+    void run();
 
 private:
-  std::unique_ptr<SDLWindow> m_window;
-  std::unique_ptr<SDLRenderer> m_renderer;
+    std::unique_ptr<SDLWindow> m_window;
+    std::unique_ptr<SDLRenderer> m_renderer;
 
-  bool can_quit = false;
-  bool initialized = false;
+    bool can_quit = false;
+    bool initialized = false;
 };
 }; // namespace Game

+ 7 - 9
src/main.cpp

@@ -2,18 +2,16 @@
 #include <SDL2/SDL.h>
 #include <fmt/core.h>
 
-int
-main (int, char **)
+int main(int, char**)
 {
-  if (SDL_Init (SDL_INIT_VIDEO) < 0)
-    {
-      fmt::print ("could not init SDL.");
-      return (EXIT_FAILURE);
+    if (SDL_Init(SDL_INIT_VIDEO) < 0) {
+        fmt::print("could not init SDL.");
+        return (EXIT_FAILURE);
     }
 
-  Game::App app = Game::App ("SDL Game", 800, 600);
+    Game::App app = Game::App("SDL Game", 800, 600);
 
-  app.run ();
+    app.run();
 
-  return 0;
+    return 0;
 }