forked from lix-project/lix
columnRange -> column
This commit is contained in:
parent
55c96b64e4
commit
00c507cc52
|
@ -46,8 +46,8 @@ ErrorInfo ErrorInfo::ProgramEI(ErrLevel level,
|
|||
|
||||
string showErrLine(const ErrLine &errLine)
|
||||
{
|
||||
if (errLine.columnRange.has_value()) {
|
||||
return (format("(%1%:%2%)") % errLine.lineNumber % errLine.columnRange->start).str();
|
||||
if (errLine.column > 0) {
|
||||
return (format("(%1%:%2%)") % errLine.lineNumber % errLine.column).str();
|
||||
} else {
|
||||
return (format("(%1%)") % errLine.lineNumber).str();
|
||||
};
|
||||
|
@ -74,18 +74,14 @@ void printCodeLines(const string &prefix, const NixCode &nixCode)
|
|||
<< std::endl;
|
||||
|
||||
// error arrows for the column range.
|
||||
if (nixCode.errLine->columnRange.has_value()) {
|
||||
int start = nixCode.errLine->columnRange->start;
|
||||
if (nixCode.errLine->column > 0) {
|
||||
int start = nixCode.errLine->column;
|
||||
std::string spaces;
|
||||
for (int i = 0; i < start; ++i) {
|
||||
spaces.append(" ");
|
||||
}
|
||||
|
||||
int len = nixCode.errLine->columnRange->len;
|
||||
std::string arrows;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
arrows.append("^");
|
||||
}
|
||||
std::string arrows("^");
|
||||
|
||||
std::cout << format("%1% |%2%" ANSI_RED "%3%" ANSI_NORMAL) % prefix % spaces % arrows << std::endl;
|
||||
}
|
||||
|
|
|
@ -17,20 +17,13 @@ typedef enum {
|
|||
elError
|
||||
} ErrLevel;
|
||||
|
||||
class ColumnRange
|
||||
{
|
||||
public:
|
||||
unsigned int start;
|
||||
unsigned int len;
|
||||
};
|
||||
|
||||
class ErrorInfo;
|
||||
|
||||
class ErrLine
|
||||
{
|
||||
public:
|
||||
int lineNumber;
|
||||
std::optional<ColumnRange> columnRange;
|
||||
int column;
|
||||
std::optional<string> prevLineOfCode;
|
||||
string errLineOfCode;
|
||||
std::optional<string> nextLineOfCode;
|
||||
|
@ -107,6 +100,8 @@ public:
|
|||
|
||||
static std::optional<string> programName;
|
||||
|
||||
ErrorInfo& set_name(const string &name) { this->name = name; return *this; }
|
||||
|
||||
static ErrorInfo ProgramError(const string &name,
|
||||
const string &description,
|
||||
const std::optional<hintformat> &hf);
|
||||
|
@ -165,7 +160,7 @@ private:
|
|||
|
||||
ErrLine errline;
|
||||
errline.lineNumber = pos.line;
|
||||
errline.columnRange = { .start = pos.column, .len = 1 };
|
||||
errline.column = pos.column;
|
||||
errline.prevLineOfCode = prevloc;
|
||||
errline.errLineOfCode = loc;
|
||||
errline.nextLineOfCode = nextloc;
|
||||
|
|
Loading…
Reference in a new issue