Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1942)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/formatter_worker/CSSFormatter.js

Issue 1835783002: DevTools: simplify WI.FormattedContentBuilder (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebaseline tests Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 this._lastLine = -1; 52 this._lastLine = -1;
53 this._state = {}; 53 this._state = {};
54 var tokenize = WebInspector.createTokenizer("text/css"); 54 var tokenize = WebInspector.createTokenizer("text/css");
55 tokenize(text.substring(this._fromOffset, this._toOffset), this._tokenCa llback.bind(this)); 55 tokenize(text.substring(this._fromOffset, this._toOffset), this._tokenCa llback.bind(this));
56 }, 56 },
57 57
58 /** 58 /**
59 * @param {string} token 59 * @param {string} token
60 * @param {?string} type 60 * @param {?string} type
61 * @param {number} startPosition 61 * @param {number} startPosition
62 * @param {number} endPosition
63 */ 62 */
64 _tokenCallback: function(token, type, startPosition, endPosition) 63 _tokenCallback: function(token, type, startPosition)
65 { 64 {
66 startPosition += this._fromOffset; 65 startPosition += this._fromOffset;
67 endPosition += this._fromOffset;
68 var startLine = this._lineEndings.lowerBound(startPosition); 66 var startLine = this._lineEndings.lowerBound(startPosition);
69 var endLine = this._lineEndings.lowerBound(endPosition);
70 if (startLine !== this._lastLine) 67 if (startLine !== this._lastLine)
71 this._state.eatWhitespace = true; 68 this._state.eatWhitespace = true;
72 if (/^property/.test(type) && !this._state.inPropertyValue) 69 if (/^property/.test(type) && !this._state.inPropertyValue)
73 this._state.seenProperty = true; 70 this._state.seenProperty = true;
74 this._lastLine = startLine; 71 this._lastLine = startLine;
75 var isWhitespace = /^\s+$/.test(token); 72 var isWhitespace = /^\s+$/.test(token);
76 if (isWhitespace) { 73 if (isWhitespace) {
77 if (!this._state.eatWhitespace) 74 if (!this._state.eatWhitespace)
78 this._builder.addSoftSpace(); 75 this._builder.addSoftSpace();
79 return; 76 return;
80 } 77 }
81 this._state.eatWhitespace = false; 78 this._state.eatWhitespace = false;
82 if (token === "\n") 79 if (token === "\n")
83 return; 80 return;
84 81
85 if (token !== "}") { 82 if (token !== "}") {
86 if (this._state.afterClosingBrace) 83 if (this._state.afterClosingBrace)
87 this._builder.addNewLine(true); 84 this._builder.addNewLine(true);
88 this._state.afterClosingBrace = false; 85 this._state.afterClosingBrace = false;
89 } 86 }
90 if (token === "}") { 87 if (token === "}") {
91 if (this._state.inPropertyValue) 88 if (this._state.inPropertyValue)
92 this._builder.addNewLine(); 89 this._builder.addNewLine();
93 this._builder.decreaseNestingLevel(); 90 this._builder.decreaseNestingLevel();
94 this._state.afterClosingBrace = true; 91 this._state.afterClosingBrace = true;
95 this._state.inPropertyValue = false; 92 this._state.inPropertyValue = false;
96 } else if (token === ":" && !this._state.inPropertyValue && this._state. seenProperty) { 93 } else if (token === ":" && !this._state.inPropertyValue && this._state. seenProperty) {
97 this._builder.addToken(token, startPosition, startLine, endLine); 94 this._builder.addToken(token, startPosition);
98 this._builder.addSoftSpace(); 95 this._builder.addSoftSpace();
99 this._state.eatWhitespace = true; 96 this._state.eatWhitespace = true;
100 this._state.inPropertyValue = true; 97 this._state.inPropertyValue = true;
101 this._state.seenProperty = false; 98 this._state.seenProperty = false;
102 return; 99 return;
103 } else if (token === "{") { 100 } else if (token === "{") {
104 this._builder.addSoftSpace(); 101 this._builder.addSoftSpace();
105 this._builder.addToken(token, startPosition, startLine, endLine); 102 this._builder.addToken(token, startPosition);
106 this._builder.addNewLine(); 103 this._builder.addNewLine();
107 this._builder.increaseNestingLevel(); 104 this._builder.increaseNestingLevel();
108 return; 105 return;
109 } 106 }
110 107
111 this._builder.addToken(token, startPosition, startLine, endLine); 108 this._builder.addToken(token, startPosition);
112 109
113 if (type === "comment" && !this._state.inPropertyValue && !this._state.s eenProperty) 110 if (type === "comment" && !this._state.inPropertyValue && !this._state.s eenProperty)
114 this._builder.addNewLine(); 111 this._builder.addNewLine();
115 if (token === ";" && this._state.inPropertyValue) { 112 if (token === ";" && this._state.inPropertyValue) {
116 this._state.inPropertyValue = false; 113 this._state.inPropertyValue = false;
117 this._builder.addNewLine(); 114 this._builder.addNewLine();
118 } else if (token === "}") { 115 } else if (token === "}") {
119 this._builder.addNewLine(); 116 this._builder.addNewLine();
120 } 117 }
121 } 118 }
122 } 119 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698