brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 7cf9c30 Raw
48 lines · c
1//===--- Annotations.h - Annotated source code for tests ---------*- 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// A clangd-specific version of llvm/Testing/Annotations/Annotations.h, replaces9// offsets and offset-based ranges with types from the LSP protocol.10//===---------------------------------------------------------------------===//11 12#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_UNITTESTS_ANNOTATIONS_H13#define LLVM_CLANG_TOOLS_EXTRA_CLANGD_UNITTESTS_ANNOTATIONS_H14 15#include "Protocol.h"16#include "llvm/Testing/Annotations/Annotations.h"17 18namespace clang {19namespace clangd {20 21/// Same as llvm::Annotations, but adjusts functions to LSP-specific types for22/// positions and ranges.23class Annotations : public llvm::Annotations {24  using Base = llvm::Annotations;25 26public:27  using llvm::Annotations::Annotations;28 29  Position point(llvm::StringRef Name = "") const;30  std::pair<Position, llvm::StringRef>31  pointWithPayload(llvm::StringRef Name = "") const;32  std::vector<Position> points(llvm::StringRef Name = "") const;33  std::vector<std::pair<Position, llvm::StringRef>>34  pointsWithPayload(llvm::StringRef Name = "") const;35 36  clangd::Range range(llvm::StringRef Name = "") const;37  std::pair<clangd::Range, llvm::StringRef>38  rangeWithPayload(llvm::StringRef Name = "") const;39  std::vector<clangd::Range> ranges(llvm::StringRef Name = "") const;40  std::vector<std::pair<clangd::Range, llvm::StringRef>>41  rangesWithPayload(llvm::StringRef Name = "") const;42};43 44} // namespace clangd45} // namespace clang46 47#endif // LLVM_CLANG_TOOLS_EXTRA_CLANGD_UNITTESTS_ANNOTATIONS_H48