diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ea13960..867718f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,3 +13,9 @@ repos: entry: tools/additional_lint language: python stages: [commit] + + - id: imports + name: imports + entry: tools/sort_imports + language: system + files: \.[ch](pp)?$ diff --git a/include/libtrx/config/config_map.h b/include/libtrx/config/config_map.h index 98ec567..91cdce5 100644 --- a/include/libtrx/config/config_map.h +++ b/include/libtrx/config/config_map.h @@ -1,7 +1,6 @@ -#include "config_option.h" - #include "../enum_str.h" #include "../utils.h" +#include "config_option.h" #include #include diff --git a/include/libtrx/game/objects/common.h b/include/libtrx/game/objects/common.h index 09cc291..680476f 100644 --- a/include/libtrx/game/objects/common.h +++ b/include/libtrx/game/objects/common.h @@ -1,9 +1,9 @@ #pragma once -#include "ids.h" -#include "../math.h" -#include "../items.h" #include "../collision.h" +#include "../items.h" +#include "../math.h" +#include "ids.h" #include diff --git a/include/libtrx/gfx/2d/2d_renderer.h b/include/libtrx/gfx/2d/2d_renderer.h index a4f232d..a1e2b89 100644 --- a/include/libtrx/gfx/2d/2d_renderer.h +++ b/include/libtrx/gfx/2d/2d_renderer.h @@ -1,11 +1,11 @@ #pragma once -#include "2d_surface.h" #include "../gl/buffer.h" #include "../gl/program.h" #include "../gl/sampler.h" #include "../gl/texture.h" #include "../gl/vertex_array.h" +#include "2d_surface.h" #include #include diff --git a/include/libtrx/gfx/2d/2d_surface.h b/include/libtrx/gfx/2d/2d_surface.h index 9a96cee..f5242a6 100644 --- a/include/libtrx/gfx/2d/2d_surface.h +++ b/include/libtrx/gfx/2d/2d_surface.h @@ -1,8 +1,7 @@ #pragma once -#include "../gl/gl_core_3_3.h" - #include "../../engine/image.h" +#include "../gl/gl_core_3_3.h" #include #include diff --git a/include/libtrx/gfx/3d/3d_renderer.h b/include/libtrx/gfx/3d/3d_renderer.h index e99a18e..1058c12 100644 --- a/include/libtrx/gfx/3d/3d_renderer.h +++ b/include/libtrx/gfx/3d/3d_renderer.h @@ -1,12 +1,12 @@ #pragma once -#include "vertex_stream.h" #include "../common.h" #include "../config.h" #include "../gl/gl_core_3_3.h" #include "../gl/program.h" #include "../gl/sampler.h" #include "../gl/texture.h" +#include "vertex_stream.h" #define GFX_MAX_TEXTURES 128 #define GFX_NO_TEXTURE (-1) diff --git a/include/libtrx/gfx/gl/utils.h b/include/libtrx/gfx/gl/utils.h index 637d675..95a6bd0 100644 --- a/include/libtrx/gfx/gl/utils.h +++ b/include/libtrx/gfx/gl/utils.h @@ -1,8 +1,7 @@ #pragma once -#include "../gl/gl_core_3_3.h" - #include "../../log.h" +#include "../gl/gl_core_3_3.h" #define GFX_GL_CheckError() \ { \ diff --git a/include/libtrx/virtual_file.h b/include/libtrx/virtual_file.h index 2d8cb8d..68d7e11 100644 --- a/include/libtrx/virtual_file.h +++ b/include/libtrx/virtual_file.h @@ -1,7 +1,7 @@ #pragma once -#include #include +#include typedef struct { char *content; diff --git a/tools/libtrx/cli/sort_imports.py b/tools/libtrx/cli/sort_imports.py index e450ecf..8d83f82 100644 --- a/tools/libtrx/cli/sort_imports.py +++ b/tools/libtrx/cli/sort_imports.py @@ -23,9 +23,21 @@ def sort_imports( own_include_map: dict[str, str], fix_map: dict[str, str], forced_order: list[str], + include_dirs: list[Path], ) -> None: source = path.read_text() - rel_path = path.relative_to(root_dir) + try: + rel_path = path.relative_to(root_dir) + except ValueError: + matches = [] + for include_dir in include_dirs: + try: + rel_path = path.relative_to(include_dir) + except ValueError: + pass + matches.append(rel_path) + rel_path = sorted(matches, key=lambda path: len(str(path)))[0] + own_include = str(rel_path.with_suffix(".h")) own_include = own_include_map.get(str(rel_path), own_include) @@ -106,4 +118,5 @@ def run_script( own_include_map=own_include_map, fix_map=fix_map, forced_order=forced_order, + include_dirs=include_dirs, )