ccls/src/position.h

41 lines
1012 B
C
Raw Normal View History

2017-04-05 08:06:18 +00:00
#pragma once
#include <cassert>
#include <cstdint>
#include <string>
struct Position {
int16_t line = -1;
int16_t column = -1;
2017-04-05 08:06:18 +00:00
Position();
2017-04-07 06:10:17 +00:00
Position(int32_t line, int32_t column);
2017-04-05 08:06:18 +00:00
explicit Position(const char* encoded);
std::string ToString();
std::string ToPrettyString(const std::string& filename);
// Compare two Positions and check if they are equal. Ignores the value of
// |interesting|.
bool operator==(const Position& that) const;
bool operator!=(const Position& that) const;
bool operator<(const Position& that) const;
};
static_assert(sizeof(Position) == 4, "Investigate, Position should be 32-bits for indexer size reasons");
2017-04-05 08:06:18 +00:00
struct Range {
Position start;
Position end;
Range();
Range(Position start, Position end);
2017-04-05 08:06:18 +00:00
explicit Range(const char* encoded);
bool Contains(int line, int column) const;
2017-04-05 08:06:18 +00:00
std::string ToString();
bool operator==(const Range& that) const;
bool operator!=(const Range& that) const;
bool operator<(const Range& that) const;
};