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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/changes/ChangesHighlighter.js

Issue 2772643002: DevTools: Changes View (Closed)
Patch Set: fix test Created 3 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
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /**
6 * @param {!Object} config
7 * @param {{rows: !Array<!Changes.ChangesView.Row>}} parserConfig
8 * @return {{
9 * startState: function():!Changes.ChangesHighlighter.DiffState,
10 * token: function({next: function()}, !Changes.ChangesHighlighter.DiffState):s tring,
11 * blankLine: function(!Changes.ChangesHighlighter.DiffState):string,
12 * }}
13 */
14 Changes.ChangesHighlighter = function(config, parserConfig) {
15 var rows = parserConfig.rows;
16
17 return {
18 /**
19 * @return {!Changes.ChangesHighlighter.DiffState}
20 */
21 startState: function() {
22 return {lineNumber: 0, index: 0};
23 },
24
25 /**
26 * @param {!{next: function()}} stream
27 * @param {!Changes.ChangesHighlighter.DiffState} state
28 * @return {string}
29 */
30 token: function(stream, state) {
31 var row = rows[state.lineNumber];
32 if (!row) {
33 stream.next();
34 return '';
35 }
36 var classes = '';
37 if (state.index === 0)
38 classes += ' line-background-' + row.type + ' line-' + row.type;
39 stream.pos += row.content[state.index].text.length;
40 classes += ' ' + row.content[state.index].className;
41 state.index++;
42 if (state.index >= row.content.length) {
43 state.lineNumber++;
44 state.index = 0;
45 }
46 return classes;
47 },
48
49 /**
50 * @param {!Changes.ChangesHighlighter.DiffState} state
51 * @return {string}
52 */
53 blankLine: function(state) {
54 var row = rows[state.lineNumber];
55 state.lineNumber++;
56 state.index = 0;
57 if (!row)
58 return '';
59 return 'line-background-' + row.type + ' line-' + row.type;
60 }
61 };
62 };
63
64 /** @typedef {!{lineNumber: number, index: number}} */
65 Changes.ChangesHighlighter.DiffState;
66
67 CodeMirror.defineMode('devtools-diff', Changes.ChangesHighlighter);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698