39 lines · c
1//===-- ClangHighlighter.h --------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_CLANGCOMMON_CLANGHIGHLIGHTER_H10#define LLDB_SOURCE_PLUGINS_LANGUAGE_CLANGCOMMON_CLANGHIGHLIGHTER_H11 12#include "lldb/Utility/Stream.h"13#include "llvm/ADT/StringSet.h"14 15#include "lldb/Core/Highlighter.h"16#include <optional>17 18namespace lldb_private {19 20class ClangHighlighter : public Highlighter {21 llvm::StringSet<> keywords;22 23public:24 ClangHighlighter();25 llvm::StringRef GetName() const override { return "clang"; }26 27 void Highlight(const HighlightStyle &options, llvm::StringRef line,28 std::optional<size_t> cursor_pos,29 llvm::StringRef previous_lines, Stream &s) const override;30 31 /// Returns true if the given string represents a keywords in any Clang32 /// supported language.33 bool isKeyword(llvm::StringRef token) const;34};35 36} // namespace lldb_private37 38#endif // LLDB_SOURCE_PLUGINS_LANGUAGE_CLANGCOMMON_CLANGHIGHLIGHTER_H39