summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibCodeComprehension/FileDB.h
diff options
context:
space:
mode:
authorItamar <itamar8910@gmail.com>2022-05-14 17:09:24 +0300
committerAndreas Kling <kling@serenityos.org>2022-05-21 18:15:58 +0200
commitb35293d9458bd583f81ca1ec2df59f06e4690bf0 (patch)
tree88e6c1bf229cd54c2ff686c6bd304f06e6d9f8d3 /Userland/Libraries/LibCodeComprehension/FileDB.h
parenta2c34554cd5ff3a17583f885088000b7cf975121 (diff)
downloadserenity-b35293d9458bd583f81ca1ec2df59f06e4690bf0.zip
LibCodeComprehension: Re-organize code comprehension related code
This moves all code comprehension-related code to a new library, LibCodeComprehension. This also moves some types related to code comprehension tasks (such as autocomplete, find declaration) out of LibGUI and into LibCodeComprehension.
Diffstat (limited to 'Userland/Libraries/LibCodeComprehension/FileDB.h')
-rw-r--r--Userland/Libraries/LibCodeComprehension/FileDB.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/Userland/Libraries/LibCodeComprehension/FileDB.h b/Userland/Libraries/LibCodeComprehension/FileDB.h
new file mode 100644
index 0000000000..36e1a6efcf
--- /dev/null
+++ b/Userland/Libraries/LibCodeComprehension/FileDB.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2022, Itamar S. <itamar8910@gmail.com>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#pragma once
+
+#include <AK/String.h>
+#include <AK/StringView.h>
+
+namespace CodeComprehension {
+
+class FileDB {
+ AK_MAKE_NONCOPYABLE(FileDB);
+ AK_MAKE_NONMOVABLE(FileDB);
+
+public:
+ virtual ~FileDB() = default;
+
+ virtual Optional<String> get_or_read_from_filesystem(StringView filename) const = 0;
+ void set_project_root(StringView project_root) { m_project_root = project_root; }
+ String const& project_root() const { return m_project_root; }
+ String to_absolute_path(StringView filename) const;
+
+protected:
+ FileDB() = default;
+
+private:
+ String m_project_root;
+};
+
+}