12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- var parserPackage = require('../package.json');
- /**
- * @param {Error} e
- * @param {String} css
- */
- function ParsingError(e, css) {
- this.line = e.line;
- this.syntax = e.syntax;
- this.css_ = css;
- }
- ParsingError.prototype = {
- /**
- * @type {Number}
- */
- line: null,
- /**
- * @type {String}
- */
- name: 'Parsing error',
- /**
- * @type {String}
- */
- syntax: null,
- /**
- * @type {String}
- */
- version: parserPackage.version,
- /**
- * @return {String}
- */
- toString: function() {
- return this.name + ': ' + this.message;
- },
- /**
- * @type {String}
- */
- get message() {
- return [
- 'Please check the validity of the block starting from line #' + this.line,
- '',
- this.codeFragment_,
- '',
- 'Gonzales PE version: ' + this.version,
- 'Syntax: ' + this.syntax
- ].join('\n');
- },
- /**
- * @type {String}
- */
- get codeFragment_() {
- var LINES_AROUND = 2;
- var result = [];
- var currentLineNumber = this.line;
- var start = currentLineNumber - 1 - LINES_AROUND;
- var end = currentLineNumber + LINES_AROUND;
- var lines = this.css_.split(/\r\n|\r|\n/);
- for (var i = start; i < end; i++) {
- var line = lines[i];
- if (!line) continue;
- var ln = i + 1;
- var mark = ln === currentLineNumber ? '*' : ' ';
- result.push(ln + mark + '| ' + line);
- }
- return result.join('\n');
- }
- };
- module.exports = ParsingError;
|