Arkanjo 0.2
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
function.hpp
Go to the documentation of this file.
1
13#pragma once
14
15#include <array>
16#include <string>
17#include <vector>
18
19#include "nlohmann/json.hpp"
20#include <arkanjo/base/path.hpp>
22using json = nlohmann::json;
23
30class Function {
31 private:
32 static constexpr const char* LINE_DECLARATION_JSON = "line_declaration";
33 static constexpr const char* START_NUMBER_LINE_JSON = "start_number_line";
34 static constexpr const char* END_NUMBER_LINE_JSON = "end_number_line";
35
36 static constexpr const char* FUNCTION_PREFIX_PRINT = "Function: ";
37 static constexpr const char* RELATIVE_PATH_PRINT = "File: ";
38 static constexpr const char* LINE_DECLARATION_PRINT = "Lines: ";
39 static constexpr const char* NUMBER_LINE_PRINT = "Size: ";
40
41 Path path;
42 std::vector<std::string> content;
43 std::vector<std::string> header;
44 int start_number_line;
45 int line_declaration;
46 int end_number_line;
47
51 void read_content();
52
56 void read_header();
57
61 void read_info();
62
63 public:
68 int number_of_lines() const;
69
74 explicit Function(const Path& _path);
75
76 void load();
77
85 std::array<int, 3> get_scope_function_in_file() const;
86
91 const std::vector<std::string>& get_header() const;
92
97 std::vector<std::string> build_all_content();
98
102 void print_basic_info();
103
104 void print_code(bool no_numbers = false);
105};
Represents a code function with its content and metadata.
Definition function.hpp:30
const std::vector< std::string > & get_header() const
Gets the function's header content.
Definition function.cpp:43
std::array< int, 3 > get_scope_function_in_file() const
Gets the function's line number scope.
Definition function.cpp:39
Function(const Path &_path)
Constructs a Function object.
Definition function.cpp:28
std::vector< std::string > build_all_content()
Builds combined content of header and source.
Definition function.cpp:47
void load()
Definition function.cpp:30
void print_code(bool no_numbers=false)
Definition function.cpp:80
int number_of_lines() const
Calculates the total number of lines in the function.
Definition function.cpp:24
void print_basic_info()
Prints formatted function information to console.
Definition function.cpp:65
Path manipulation class for tool-specific directory structure.
Definition path.hpp:27
nlohmann::json json
Definition function.hpp:22
Path abstraction for temporary codebase.
Defines utility functions used across all files.