/* * Copyright (c) 2020, Itamar S. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace LanguageServers::Cpp { using namespace ::Cpp; class LexerAutoComplete : public AutoCompleteEngine { public: LexerAutoComplete(ClientConnection&, const FileDB& filedb); virtual Vector get_suggestions(const String& file, const GUI::TextPosition& autocomplete_position) override; private: Optional token_in_position(const Vector&, const GUI::TextPosition&); StringView text_of_token(const Vector& lines, const Cpp::Token&); Vector identifier_prefixes(const Vector& lines, const Vector&, size_t target_token_index); }; }