From 030d4d01084b04af361f07dd6360dfad8e2cc19c Mon Sep 17 00:00:00 2001 From: David Schulz Date: Fri, 23 Nov 2018 09:46:46 +0100 Subject: [PATCH] LSP: add compare operator for Position ... and a contains function for Range Change-Id: Ieab05495deb0160fb651d6ae0642ffd625d7e115 Reviewed-by: Christian Stenger --- src/libs/languageserverprotocol/lsptypes.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/libs/languageserverprotocol/lsptypes.h b/src/libs/languageserverprotocol/lsptypes.h index 6c73ecb3214..46d830b370b 100644 --- a/src/libs/languageserverprotocol/lsptypes.h +++ b/src/libs/languageserverprotocol/lsptypes.h @@ -88,6 +88,12 @@ public: int toPositionInDocument(QTextDocument *doc) const; }; +static bool operator<=(const Position &first, const Position &second) +{ + return first.line() < second.line() + || (first.line() == second.line() && first.character() <= second.character()); +} + class LANGUAGESERVERPROTOCOL_EXPORT Range : public JsonObject { public: @@ -103,6 +109,8 @@ public: Position end() const { return typedValue(endKey); } void setEnd(const Position &end) { insert(endKey, end); } + bool contains(const Position &pos) const { return start() <= pos && pos <= end(); } + bool isValid(QStringList *error) const override { return check(error, startKey) && check(error, endKey); } };