ArKanjo 0.2
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
diff_method.hpp
Go to the documentation of this file.
1
13#pragma once
14
15#include <string>
16#include <tuple>
17#include <vector>
18#include <filesystem>
20
21namespace fs = std::filesystem;
22
30class DiffMethod : public IMethod {
31 private:
32 static constexpr const char* SAVING_MESSAGE = "Saving results...";
33
34 fs::path base_path;
35 double similarity;
36
42 std::vector<std::string> find_files(const fs::path& folder_path);
43
49 bool is_empty_line(std::string line);
50
56 std::vector<std::string> remove_blank_lines(std::vector<std::string> content);
57
64 bool is_equal_files(std::vector<std::string> content1, std::vector<std::string> content2);
65
72 double find_similarity(std::string path1, std::string path2);
73
79 std::vector<DuplicationEntry> find_similar_pairs(std::vector<std::string>& file_paths);
80
85 void save_duplications(std::vector<DuplicationEntry>& file_duplication_pairs) override;
86
87 public:
93 DiffMethod(const fs::path& base_path_, double similarity_);
94
95 void on_function(const FunctionData& fd) override;
96
100 void execute() override;
101};
Code duplication preprocessor.
void on_function(const FunctionData &fd) override
void execute() override
Executes the preprocessing pipeline.
DiffMethod(const fs::path &base_path_, double similarity_)
Constructs preprocessor with configuration.