| Index: Source/devtools/front_end/script_formatter_worker/ScriptFormatterWorker.js
|
| diff --git a/Source/devtools/front_end/script_formatter_worker/ScriptFormatterWorker.js b/Source/devtools/front_end/script_formatter_worker/ScriptFormatterWorker.js
|
| index b5951097aba518ced76e393bb8809696d8d7041b..31b2157741fffd7e112a3aaca5de93af3345ee3a 100644
|
| --- a/Source/devtools/front_end/script_formatter_worker/ScriptFormatterWorker.js
|
| +++ b/Source/devtools/front_end/script_formatter_worker/ScriptFormatterWorker.js
|
| @@ -238,6 +238,8 @@ FormatterWorker.parseCSS = function(params)
|
| property = {
|
| name: tokenValue,
|
| value: "",
|
| + range: createRange(lineNumber, column),
|
| + nameRange: createRange(lineNumber, column)
|
| };
|
| state = FormatterWorker.CSSParserStates.PropertyName;
|
| } else if (tokenValue === "}" && tokenType === UndefTokenType) {
|
| @@ -248,21 +250,28 @@ FormatterWorker.parseCSS = function(params)
|
| case FormatterWorker.CSSParserStates.PropertyName:
|
| if (tokenValue === ":" && tokenType === UndefTokenType) {
|
| property.name = property.name.trim();
|
| + property.nameRange.endLine = lineNumber;
|
| + property.nameRange.endColumn = column;
|
| + property.valueRange = createRange(lineNumber, newColumn);
|
| state = FormatterWorker.CSSParserStates.PropertyValue;
|
| } else if (tokenType["property"]) {
|
| property.name += tokenValue;
|
| }
|
| break;
|
| case FormatterWorker.CSSParserStates.PropertyValue:
|
| - if (tokenValue === ";" && tokenType === UndefTokenType) {
|
| + if ((tokenValue === ";" || tokenValue === "}") && tokenType === UndefTokenType) {
|
| property.value = property.value.trim();
|
| + property.valueRange.endLine = lineNumber;
|
| + property.valueRange.endColumn = column;
|
| + property.range.endLine = lineNumber;
|
| + property.range.endColumn = newColumn;
|
| rule.properties.push(property);
|
| - state = FormatterWorker.CSSParserStates.Style;
|
| - } else if (tokenValue === "}" && tokenType === UndefTokenType) {
|
| - property.value = property.value.trim();
|
| - rule.properties.push(property);
|
| - rules.push(rule);
|
| - state = FormatterWorker.CSSParserStates.Initial;
|
| + if (tokenValue === "}") {
|
| + rules.push(rule);
|
| + state = FormatterWorker.CSSParserStates.Initial;
|
| + } else {
|
| + state = FormatterWorker.CSSParserStates.Style;
|
| + }
|
| } else if (!tokenType["comment"]) {
|
| property.value += tokenValue;
|
| }
|
| @@ -284,6 +293,19 @@ FormatterWorker.parseCSS = function(params)
|
| tokenizer(line, processToken);
|
| }
|
| postMessage({ chunk: rules, isLastChunk: true });
|
| +
|
| + /**
|
| + * @return {!{startLine: number, startColumn: number, endLine: number, endColumn: number}}
|
| + */
|
| + function createRange(lineNumber, columnNumber)
|
| + {
|
| + return {
|
| + startLine: lineNumber,
|
| + startColumn: columnNumber,
|
| + endLine: lineNumber,
|
| + endColumn: columnNumber
|
| + };
|
| + }
|
| }
|
|
|
| /**
|
|
|