remove backtrackTo and trimNewLines from mozParser
* backtrackTo is not needed since 2e86c958
* trimNewLines does exactly the same as trim()
This commit is contained in:
parent
2a95793de0
commit
417d6855ff
|
@ -7,19 +7,6 @@ var mozParser = (() => {
|
||||||
const propertyToCss = {urls: 'url', urlPrefixes: 'url-prefix', domains: 'domain', regexps: 'regexp'};
|
const propertyToCss = {urls: 'url', urlPrefixes: 'url-prefix', domains: 'domain', regexps: 'regexp'};
|
||||||
const CssToProperty = {'url': 'urls', 'url-prefix': 'urlPrefixes', 'domain': 'domains', 'regexp': 'regexps'};
|
const CssToProperty = {'url': 'urls', 'url-prefix': 'urlPrefixes', 'domain': 'domains', 'regexp': 'regexps'};
|
||||||
|
|
||||||
function backtrackTo(parser, tokenType, startEnd) {
|
|
||||||
const tokens = parser._tokenStream._lt;
|
|
||||||
for (let i = parser._tokenStream._ltIndex - 1; i >= 0; --i) {
|
|
||||||
if (tokens[i].type === tokenType) {
|
|
||||||
return {line: tokens[i][startEnd + 'Line'], col: tokens[i][startEnd + 'Col']};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function trimNewLines(s) {
|
|
||||||
return s.replace(/^[\s\n]+/, '').replace(/[\s\n]+$/, '');
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseMozFormat(mozStyle) {
|
function parseMozFormat(mozStyle) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const parser = new parserlib.css.Parser();
|
const parser = new parserlib.css.Parser();
|
||||||
|
@ -28,15 +15,21 @@ var mozParser = (() => {
|
||||||
const errors = [];
|
const errors = [];
|
||||||
const sections = [];
|
const sections = [];
|
||||||
|
|
||||||
parser.addListener('startdocument', function (e) {
|
parser.addListener('startdocument', e => {
|
||||||
const lastSection = sectionStack[sectionStack.length - 1];
|
const lastSection = sectionStack[sectionStack.length - 1];
|
||||||
let outerText = getRange(lastSection.start, (--e.col, e));
|
let outerText = getRange(lastSection.start, {line: e.line, col: e.col - 1});
|
||||||
const gapComment = outerText.match(/(\/\*[\s\S]*?\*\/)[\s\n]*$/);
|
const gapComment = outerText.match(/(\/\*[\s\S]*?\*\/)[\s\n]*$/);
|
||||||
const section = {code: '', start: backtrackTo(this, parserlib.css.Tokens.LBRACE, 'end')};
|
const section = {
|
||||||
|
code: '',
|
||||||
|
start: {
|
||||||
|
line: parser._tokenStream._token.endLine,
|
||||||
|
col: parser._tokenStream._token.endCol,
|
||||||
|
},
|
||||||
|
};
|
||||||
// move last comment before @-moz-document inside the section
|
// move last comment before @-moz-document inside the section
|
||||||
if (gapComment && !gapComment[1].match(/\/\*\s*AGENT_SHEET\s*\*\//)) {
|
if (gapComment && !gapComment[1].match(/\/\*\s*AGENT_SHEET\s*\*\//)) {
|
||||||
section.code = gapComment[1] + '\n';
|
section.code = gapComment[1] + '\n';
|
||||||
outerText = trimNewLines(outerText.substring(0, gapComment.index));
|
outerText = outerText.substring(0, gapComment.index).trim();
|
||||||
}
|
}
|
||||||
if (outerText.trim()) {
|
if (outerText.trim()) {
|
||||||
lastSection.code = outerText;
|
lastSection.code = outerText;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user