summaryrefslogtreecommitdiffstats
path: root/clangd/index/SymbolLocation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clangd/index/SymbolLocation.cpp')
-rw-r--r--clangd/index/SymbolLocation.cpp40
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