Serenity Operating System
1/*
2 * Copyright (c) 2021, Federico Guerinoni <guerinoni.federico@gmail.com>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <AK/DeprecatedString.h>
10#include <AK/Function.h>
11#include <AK/HashMap.h>
12#include <AK/Noncopyable.h>
13#include <LibCpp/Parser.h>
14
15namespace HackStudio {
16
17class ToDoEntries {
18 AK_MAKE_NONCOPYABLE(ToDoEntries);
19
20public:
21 static ToDoEntries& the();
22
23 void set_entries(DeprecatedString const& filename, Vector<CodeComprehension::TodoEntry> const&& entries);
24
25 Vector<CodeComprehension::TodoEntry> get_entries();
26
27 void clear_entries();
28
29 Function<void()> on_update = nullptr;
30
31private:
32 ToDoEntries() = default;
33 HashMap<DeprecatedString, Vector<CodeComprehension::TodoEntry>> m_document_to_entries;
34};
35
36}