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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/source_frame/SourcesTextEditor.js

Issue 2440953003: DevTools: use semicolons after each statement. (Closed)
Patch Set: rebaseline Created 4 years, 1 month 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 // Copyright (c) 2016 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @constructor 6 * @constructor
7 * @extends {WebInspector.CodeMirrorTextEditor} 7 * @extends {WebInspector.CodeMirrorTextEditor}
8 * @param {!WebInspector.SourcesTextEditorDelegate} delegate 8 * @param {!WebInspector.SourcesTextEditorDelegate} delegate
9 */ 9 */
10 WebInspector.SourcesTextEditor = function(delegate) 10 WebInspector.SourcesTextEditor = function(delegate)
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 } 50 }
51 51
52 this.element.addEventListener("mousedown", updateAnticipateJumpFlag.bind(thi s, true), true); 52 this.element.addEventListener("mousedown", updateAnticipateJumpFlag.bind(thi s, true), true);
53 this.element.addEventListener("mousedown", updateAnticipateJumpFlag.bind(thi s, false), false); 53 this.element.addEventListener("mousedown", updateAnticipateJumpFlag.bind(thi s, false), false);
54 WebInspector.moduleSetting("textEditorIndent").addChangeListener(this._onUpd ateEditorIndentation, this); 54 WebInspector.moduleSetting("textEditorIndent").addChangeListener(this._onUpd ateEditorIndentation, this);
55 WebInspector.moduleSetting("textEditorAutoDetectIndent").addChangeListener(t his._onUpdateEditorIndentation, this); 55 WebInspector.moduleSetting("textEditorAutoDetectIndent").addChangeListener(t his._onUpdateEditorIndentation, this);
56 WebInspector.moduleSetting("showWhitespacesInEditor").addChangeListener(this ._updateWhitespace, this); 56 WebInspector.moduleSetting("showWhitespacesInEditor").addChangeListener(this ._updateWhitespace, this);
57 57
58 this._onUpdateEditorIndentation(); 58 this._onUpdateEditorIndentation();
59 this._setupWhitespaceHighlight(); 59 this._setupWhitespaceHighlight();
60 } 60 };
61 WebInspector.SourcesTextEditor.prototype = { 61 WebInspector.SourcesTextEditor.prototype = {
62 /** 62 /**
63 * @return {boolean} 63 * @return {boolean}
64 */ 64 */
65 _isSearchActive: function() 65 _isSearchActive: function()
66 { 66 {
67 return !!this._tokenHighlighter.highlightedRegex(); 67 return !!this._tokenHighlighter.highlightedRegex();
68 }, 68 },
69 69
70 /** 70 /**
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 this.refresh(); 193 this.refresh();
194 }, 194 },
195 195
196 /** 196 /**
197 * @param {number} lineNumber 197 * @param {number} lineNumber
198 * @param {string} type 198 * @param {string} type
199 * @param {?Element} element 199 * @param {?Element} element
200 */ 200 */
201 setGutterDecoration: function(lineNumber, type, element) 201 setGutterDecoration: function(lineNumber, type, element)
202 { 202 {
203 console.assert(this._gutters.indexOf(type) !== -1, "Cannot decorate unex isting gutter.") 203 console.assert(this._gutters.indexOf(type) !== -1, "Cannot decorate unex isting gutter.");
204 this.codeMirror().setGutterMarker(lineNumber, type, element); 204 this.codeMirror().setGutterMarker(lineNumber, type, element);
205 }, 205 },
206 206
207 /** 207 /**
208 * @param {number} lineNumber 208 * @param {number} lineNumber
209 * @param {number} columnNumber 209 * @param {number} columnNumber
210 */ 210 */
211 setExecutionLocation: function(lineNumber, columnNumber) 211 setExecutionLocation: function(lineNumber, columnNumber)
212 { 212 {
213 this.clearPositionHighlight(); 213 this.clearPositionHighlight();
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 this.codeMirror().setOption("indentUnit", 4); 336 this.codeMirror().setOption("indentUnit", 4);
337 } else { 337 } else {
338 this.codeMirror().setOption("indentWithTabs", false); 338 this.codeMirror().setOption("indentWithTabs", false);
339 this.codeMirror().setOption("indentUnit", indent.length); 339 this.codeMirror().setOption("indentUnit", indent.length);
340 extraKeys.Tab = function(codeMirror) 340 extraKeys.Tab = function(codeMirror)
341 { 341 {
342 if (codeMirror.somethingSelected()) 342 if (codeMirror.somethingSelected())
343 return CodeMirror.Pass; 343 return CodeMirror.Pass;
344 var pos = codeMirror.getCursor("head"); 344 var pos = codeMirror.getCursor("head");
345 codeMirror.replaceRange(indent.substring(pos.ch % indent.length) , codeMirror.getCursor()); 345 codeMirror.replaceRange(indent.substring(pos.ch % indent.length) , codeMirror.getCursor());
346 } 346 };
347 } 347 }
348 348
349 this.codeMirror().setOption("extraKeys", extraKeys); 349 this.codeMirror().setOption("extraKeys", extraKeys);
350 this._indentationLevel = indent; 350 this._indentationLevel = indent;
351 }, 351 },
352 352
353 /** 353 /**
354 * @return {string} 354 * @return {string}
355 */ 355 */
356 indent: function() 356 indent: function()
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 spaceChars += spaceChar; 598 spaceChars += spaceChar;
599 var rule = classBase + i + "::before { content: '" + spaceChars + "' ;}\n"; 599 var rule = classBase + i + "::before { content: '" + spaceChars + "' ;}\n";
600 rules += rule; 600 rules += rule;
601 } 601 }
602 var style = doc.createElement("style"); 602 var style = doc.createElement("style");
603 style.textContent = rules; 603 style.textContent = rules;
604 doc.head.appendChild(style); 604 doc.head.appendChild(style);
605 }, 605 },
606 606
607 __proto__: WebInspector.CodeMirrorTextEditor.prototype 607 __proto__: WebInspector.CodeMirrorTextEditor.prototype
608 } 608 };
609 609
610 /** @typedef {{lineNumber: number, event: !Event}} */ 610 /** @typedef {{lineNumber: number, event: !Event}} */
611 WebInspector.SourcesTextEditor.GutterClickEventData; 611 WebInspector.SourcesTextEditor.GutterClickEventData;
612 612
613 /** @enum {symbol} */ 613 /** @enum {symbol} */
614 WebInspector.SourcesTextEditor.Events = { 614 WebInspector.SourcesTextEditor.Events = {
615 GutterClick: Symbol("GutterClick"), 615 GutterClick: Symbol("GutterClick"),
616 TextChanged: Symbol("TextChanged"), 616 TextChanged: Symbol("TextChanged"),
617 SelectionChanged: Symbol("SelectionChanged"), 617 SelectionChanged: Symbol("SelectionChanged"),
618 ScrollChanged: Symbol("ScrollChanged"), 618 ScrollChanged: Symbol("ScrollChanged"),
619 EditorFocused: Symbol("EditorFocused"), 619 EditorFocused: Symbol("EditorFocused"),
620 EditorBlurred: Symbol("EditorBlurred"), 620 EditorBlurred: Symbol("EditorBlurred"),
621 JumpHappened: Symbol("JumpHappened") 621 JumpHappened: Symbol("JumpHappened")
622 } 622 };
623 623
624 /** 624 /**
625 * @interface 625 * @interface
626 */ 626 */
627 WebInspector.SourcesTextEditorDelegate = function() { } 627 WebInspector.SourcesTextEditorDelegate = function() { };
628 WebInspector.SourcesTextEditorDelegate.prototype = { 628 WebInspector.SourcesTextEditorDelegate.prototype = {
629 /** 629 /**
630 * @param {!WebInspector.ContextMenu} contextMenu 630 * @param {!WebInspector.ContextMenu} contextMenu
631 * @param {number} lineNumber 631 * @param {number} lineNumber
632 * @return {!Promise} 632 * @return {!Promise}
633 */ 633 */
634 populateLineGutterContextMenu: function(contextMenu, lineNumber) { }, 634 populateLineGutterContextMenu: function(contextMenu, lineNumber) { },
635 635
636 /** 636 /**
637 * @param {!WebInspector.ContextMenu} contextMenu 637 * @param {!WebInspector.ContextMenu} contextMenu
638 * @param {number} lineNumber 638 * @param {number} lineNumber
639 * @param {number} columnNumber 639 * @param {number} columnNumber
640 * @return {!Promise} 640 * @return {!Promise}
641 */ 641 */
642 populateTextAreaContextMenu: function(contextMenu, lineNumber, columnNumber) { }, 642 populateTextAreaContextMenu: function(contextMenu, lineNumber, columnNumber) { },
643 } 643 };
644 644
645 /** 645 /**
646 * @param {!CodeMirror} codeMirror 646 * @param {!CodeMirror} codeMirror
647 */ 647 */
648 CodeMirror.commands.smartNewlineAndIndent = function(codeMirror) 648 CodeMirror.commands.smartNewlineAndIndent = function(codeMirror)
649 { 649 {
650 codeMirror.operation(innerSmartNewlineAndIndent.bind(null, codeMirror)); 650 codeMirror.operation(innerSmartNewlineAndIndent.bind(null, codeMirror));
651 function innerSmartNewlineAndIndent(codeMirror) 651 function innerSmartNewlineAndIndent(codeMirror)
652 { 652 {
653 var selections = codeMirror.listSelections(); 653 var selections = codeMirror.listSelections();
654 var replacements = []; 654 var replacements = [];
655 for (var i = 0; i < selections.length; ++i) { 655 for (var i = 0; i < selections.length; ++i) {
656 var selection = selections[i]; 656 var selection = selections[i];
657 var cur = CodeMirror.cmpPos(selection.head, selection.anchor) < 0 ? selection.head : selection.anchor; 657 var cur = CodeMirror.cmpPos(selection.head, selection.anchor) < 0 ? selection.head : selection.anchor;
658 var line = codeMirror.getLine(cur.line); 658 var line = codeMirror.getLine(cur.line);
659 var indent = WebInspector.TextUtils.lineIndent(line); 659 var indent = WebInspector.TextUtils.lineIndent(line);
660 replacements.push("\n" + indent.substring(0, Math.min(cur.ch, indent .length))); 660 replacements.push("\n" + indent.substring(0, Math.min(cur.ch, indent .length)));
661 } 661 }
662 codeMirror.replaceSelections(replacements); 662 codeMirror.replaceSelections(replacements);
663 codeMirror._codeMirrorTextEditor._onAutoAppendedSpaces(); 663 codeMirror._codeMirrorTextEditor._onAutoAppendedSpaces();
664 } 664 }
665 } 665 };
666 666
667 /** 667 /**
668 * @return {!Object|undefined} 668 * @return {!Object|undefined}
669 */ 669 */
670 CodeMirror.commands.sourcesDismiss = function(codemirror) 670 CodeMirror.commands.sourcesDismiss = function(codemirror)
671 { 671 {
672 if (codemirror.listSelections().length === 1 && codemirror._codeMirrorTextEd itor._isSearchActive()) 672 if (codemirror.listSelections().length === 1 && codemirror._codeMirrorTextEd itor._isSearchActive())
673 return CodeMirror.Pass; 673 return CodeMirror.Pass;
674 return CodeMirror.commands.dismiss(codemirror); 674 return CodeMirror.commands.dismiss(codemirror);
675 } 675 };
676 676
677 /** 677 /**
678 * @constructor 678 * @constructor
679 * @param {!CodeMirror} codeMirror 679 * @param {!CodeMirror} codeMirror
680 */ 680 */
681 WebInspector.SourcesTextEditor.BlockIndentController = function(codeMirror) 681 WebInspector.SourcesTextEditor.BlockIndentController = function(codeMirror)
682 { 682 {
683 codeMirror.addKeyMap(this); 683 codeMirror.addKeyMap(this);
684 } 684 };
685 685
686 WebInspector.SourcesTextEditor.BlockIndentController.prototype = { 686 WebInspector.SourcesTextEditor.BlockIndentController.prototype = {
687 name: "blockIndentKeymap", 687 name: "blockIndentKeymap",
688 688
689 /** 689 /**
690 * @return {*} 690 * @return {*}
691 */ 691 */
692 Enter: function(codeMirror) 692 Enter: function(codeMirror)
693 { 693 {
694 var selections = codeMirror.listSelections(); 694 var selections = codeMirror.listSelections();
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 head: selection.head, 763 head: selection.head,
764 anchor: new CodeMirror.Pos(selection.head.line, 0) 764 anchor: new CodeMirror.Pos(selection.head.line, 0)
765 }); 765 });
766 var line = codeMirror.getLine(matchingBracket.to.line); 766 var line = codeMirror.getLine(matchingBracket.to.line);
767 var indent = WebInspector.TextUtils.lineIndent(line); 767 var indent = WebInspector.TextUtils.lineIndent(line);
768 replacements.push(indent + "}"); 768 replacements.push(indent + "}");
769 } 769 }
770 codeMirror.setSelections(updatedSelections); 770 codeMirror.setSelections(updatedSelections);
771 codeMirror.replaceSelections(replacements); 771 codeMirror.replaceSelections(replacements);
772 } 772 }
773 } 773 };
774 774
775 /** 775 /**
776 * @param {!Array.<string>} lines 776 * @param {!Array.<string>} lines
777 * @return {string} 777 * @return {string}
778 */ 778 */
779 WebInspector.SourcesTextEditor._guessIndentationLevel = function(lines) 779 WebInspector.SourcesTextEditor._guessIndentationLevel = function(lines)
780 { 780 {
781 var tabRegex = /^\t+/; 781 var tabRegex = /^\t+/;
782 var tabLines = 0; 782 var tabLines = 0;
783 var indents = {}; 783 var indents = {};
(...skipping 19 matching lines...) Expand all
803 for (var i in indents) { 803 for (var i in indents) {
804 if (indents[i] < linesCountPerIndentThreshold) 804 if (indents[i] < linesCountPerIndentThreshold)
805 continue; 805 continue;
806 var indent = parseInt(i, 10); 806 var indent = parseInt(i, 10);
807 if (minimumIndent > indent) 807 if (minimumIndent > indent)
808 minimumIndent = indent; 808 minimumIndent = indent;
809 } 809 }
810 if (minimumIndent === Infinity) 810 if (minimumIndent === Infinity)
811 return WebInspector.moduleSetting("textEditorIndent").get(); 811 return WebInspector.moduleSetting("textEditorIndent").get();
812 return " ".repeat(minimumIndent); 812 return " ".repeat(minimumIndent);
813 } 813 };
814 814
815 /** 815 /**
816 * @constructor 816 * @constructor
817 * @param {!WebInspector.SourcesTextEditor} textEditor 817 * @param {!WebInspector.SourcesTextEditor} textEditor
818 * @param {!CodeMirror} codeMirror 818 * @param {!CodeMirror} codeMirror
819 */ 819 */
820 WebInspector.SourcesTextEditor.TokenHighlighter = function(textEditor, codeMirro r) 820 WebInspector.SourcesTextEditor.TokenHighlighter = function(textEditor, codeMirro r)
821 { 821 {
822 this._textEditor = textEditor; 822 this._textEditor = textEditor;
823 this._codeMirror = codeMirror; 823 this._codeMirror = codeMirror;
824 } 824 };
825 825
826 WebInspector.SourcesTextEditor.TokenHighlighter.prototype = { 826 WebInspector.SourcesTextEditor.TokenHighlighter.prototype = {
827 /** 827 /**
828 * @param {!RegExp} regex 828 * @param {!RegExp} regex
829 * @param {?WebInspector.TextRange} range 829 * @param {?WebInspector.TextRange} range
830 */ 830 */
831 highlightSearchResults: function(regex, range) 831 highlightSearchResults: function(regex, range)
832 { 832 {
833 var oldRegex = this._highlightRegex; 833 var oldRegex = this._highlightRegex;
834 this._highlightRegex = regex; 834 this._highlightRegex = regex;
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
966 { 966 {
967 var overlayMode = { 967 var overlayMode = {
968 token: highlighter 968 token: highlighter
969 }; 969 };
970 this._codeMirror.addOverlay(overlayMode); 970 this._codeMirror.addOverlay(overlayMode);
971 this._highlightDescriptor = { 971 this._highlightDescriptor = {
972 overlay: overlayMode, 972 overlay: overlayMode,
973 selectionStart: selectionStart 973 selectionStart: selectionStart
974 }; 974 };
975 } 975 }
976 } 976 };
977 977
978 WebInspector.SourcesTextEditor.LinesToScanForIndentationGuessing = 1000; 978 WebInspector.SourcesTextEditor.LinesToScanForIndentationGuessing = 1000;
979 WebInspector.SourcesTextEditor.MaximumNumberOfWhitespacesPerSingleSpan = 16; 979 WebInspector.SourcesTextEditor.MaximumNumberOfWhitespacesPerSingleSpan = 16;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698