1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 03:07:35 +00:00

LanguageServers/Cpp: Complete Preprocessor definitions

Preprocessor definitions now appear in the AutoComplete suggestions box
as well as in the Locator.
This commit is contained in:
Itamar 2021-03-13 09:50:33 +02:00 committed by Andreas Kling
parent 5b22f6f45a
commit 7bf6eca9d8
6 changed files with 26 additions and 2 deletions

View file

@ -105,10 +105,14 @@ void Preprocessor::handle_preprocessor_line(const StringView& line)
if (m_state == State::Normal) {
auto key = lexer.consume_until(' ');
consume_whitespace();
DefinedValue value;
value.line = m_line_index;
auto string_value = lexer.consume_all();
if (!string_value.is_empty())
value.value = string_value;
m_definitions.set(key, value);
}
return;

View file

@ -43,6 +43,8 @@ public:
struct DefinedValue {
Optional<StringView> value;
size_t line {0};
size_t column {0};
};
using Definitions = HashMap<StringView, DefinedValue>;

View file

@ -42,6 +42,7 @@ public:
enum class CompletionKind {
Identifier,
PreprocessorDefinition,
};
enum class Language {
@ -66,7 +67,8 @@ public:
Function,
Struct,
Class,
Variable
Variable,
PreprocessorDefinition,
};
struct Declaration {