diff options
Diffstat (limited to 'clangd/index/SymbolLocation.cpp')
-rw-r--r-- | clangd/index/SymbolLocation.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/clangd/index/SymbolLocation.cpp b/clangd/index/SymbolLocation.cpp new file mode 100644 index 00000000..aac55703 --- /dev/null +++ b/clangd/index/SymbolLocation.cpp @@ -0,0 +1,40 @@ +//===--- SymbolLocation.cpp --------------------------------------*- C++-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "SymbolLocation.h" + +namespace clang { +namespace clangd { + +constexpr uint32_t SymbolLocation::Position::MaxLine; +constexpr uint32_t SymbolLocation::Position::MaxColumn; + +void SymbolLocation::Position::setLine(uint32_t L) { + if (L > MaxLine) { + Line = MaxLine; + return; + } + Line = L; +} +void SymbolLocation::Position::setColumn(uint32_t Col) { + if (Col > MaxColumn) { + Column = MaxColumn; + return; + } + Column = Col; +} + +llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const SymbolLocation &L) { + if (!L) + return OS << "(none)"; + return OS << L.FileURI << "[" << L.Start.line() << ":" << L.Start.column() + << "-" << L.End.line() << ":" << L.End.column() << ")"; +} + +} // namespace clangd +} // namespace clang |