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

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

Issue 1416793005: Devtools: API To set the red/yellow squiggles for a file via DI (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 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 588 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 var messageBucket = this._rowMessageBuckets[lineNumber]; 599 var messageBucket = this._rowMessageBuckets[lineNumber];
600 if (!messageBucket) 600 if (!messageBucket)
601 return; 601 return;
602 messageBucket.removeMessage(message); 602 messageBucket.removeMessage(message);
603 if (!messageBucket.uniqueMessagesCount()) { 603 if (!messageBucket.uniqueMessagesCount()) {
604 messageBucket.detachFromEditor(); 604 messageBucket.detachFromEditor();
605 delete this._rowMessageBuckets[lineNumber]; 605 delete this._rowMessageBuckets[lineNumber];
606 } 606 }
607 }, 607 },
608 608
609 /**
610 * @param {!Array<!WebInspector.SourceFrameMessage>} messages
611 */
612 setMessagesForSource: function(messages)
613 {
614 this.clearMessages();
pfeldman 2015/10/26 18:08:49 We should allow for concurrent error messages, you
wes 2015/10/26 22:16:32 Acknowledged.
615 for (var index = 0; index < messages.length; index++) {
616 var message = messages[index];
617 this.addMessageToSource(message);
618 }
619 },
620
609 populateLineGutterContextMenu: function(contextMenu, lineNumber) 621 populateLineGutterContextMenu: function(contextMenu, lineNumber)
610 { 622 {
611 }, 623 },
612 624
613 populateTextAreaContextMenu: function(contextMenu, lineNumber, columnNumber) 625 populateTextAreaContextMenu: function(contextMenu, lineNumber, columnNumber)
614 { 626 {
615 }, 627 },
616 628
617 /** 629 /**
618 * @param {?WebInspector.TextRange} from 630 * @param {?WebInspector.TextRange} from
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 e.consume(true); 695 e.consume(true);
684 }, 696 },
685 697
686 __proto__: WebInspector.VBox.prototype 698 __proto__: WebInspector.VBox.prototype
687 } 699 }
688 700
689 /** 701 /**
690 * @constructor 702 * @constructor
691 * @param {string} messageText 703 * @param {string} messageText
692 * @param {!WebInspector.SourceFrameMessage.Level} level 704 * @param {!WebInspector.SourceFrameMessage.Level} level
693 * @param {number} lineNumber 705 * @param {!WebInspector.TextRange} range
694 * @param {number=} columnNumber
695 */ 706 */
696 WebInspector.SourceFrameMessage = function(messageText, level, lineNumber, colum nNumber) 707 WebInspector.SourceFrameMessage = function(messageText, level, range)
697 { 708 {
698 this._messageText = messageText; 709 this._messageText = messageText;
699 this._level = level; 710 this._level = level;
700 this._lineNumber = lineNumber; 711 this._range = range;
701 this._columnNumber = columnNumber;
702 } 712 }
703 713
704 /** 714 /**
705 * @enum {string} 715 * @enum {string}
706 */ 716 */
707 WebInspector.SourceFrameMessage.Level = { 717 WebInspector.SourceFrameMessage.Level = {
708 Error: "Error", 718 Error: "Error",
709 Warning: "Warning" 719 Warning: "Warning"
710 } 720 }
711 721
712 /** 722 /**
713 * @param {!WebInspector.ConsoleMessage} consoleMessage 723 * @param {!WebInspector.ConsoleMessage} consoleMessage
714 * @param {number} lineNumber 724 * @param {number} lineNumber
715 * @param {number} columnNumber 725 * @param {number} columnNumber
716 * @return {!WebInspector.SourceFrameMessage} 726 * @return {!WebInspector.SourceFrameMessage}
717 */ 727 */
718 WebInspector.SourceFrameMessage.fromConsoleMessage = function(consoleMessage, li neNumber, columnNumber) 728 WebInspector.SourceFrameMessage.fromConsoleMessage = function(consoleMessage, li neNumber, columnNumber)
719 { 729 {
720 console.assert(consoleMessage.level === WebInspector.ConsoleMessage.MessageL evel.Error || consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel. Warning); 730 console.assert(consoleMessage.level === WebInspector.ConsoleMessage.MessageL evel.Error || consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel. Warning);
721 var level = consoleMessage.level === WebInspector.ConsoleMessage.MessageLeve l.Error ? WebInspector.SourceFrameMessage.Level.Error : WebInspector.SourceFrame Message.Level.Warning; 731 var level = consoleMessage.level === WebInspector.ConsoleMessage.MessageLeve l.Error ? WebInspector.SourceFrameMessage.Level.Error : WebInspector.SourceFrame Message.Level.Warning;
722 return new WebInspector.SourceFrameMessage(consoleMessage.messageText, level , lineNumber, columnNumber); 732 var location = new WebInspector.TextRange(lineNumber, columnNumber, lineNumb er, columnNumber);
733 return new WebInspector.SourceFrameMessage(consoleMessage.messageText, level , location);
723 } 734 }
724 735
725 WebInspector.SourceFrameMessage.prototype = { 736 WebInspector.SourceFrameMessage.prototype = {
726 /** 737 /**
727 * @return {string} 738 * @return {string}
728 */ 739 */
729 messageText: function() 740 messageText: function()
730 { 741 {
731 return this._messageText; 742 return this._messageText;
732 }, 743 },
733 744
734 /** 745 /**
735 * @return {!WebInspector.SourceFrameMessage.Level} 746 * @return {!WebInspector.SourceFrameMessage.Level}
736 */ 747 */
737 level: function() 748 level: function()
738 { 749 {
739 return this._level; 750 return this._level;
740 }, 751 },
741 752
742 /** 753 /**
754 * @return {!WebInspector.TextRange}
755 */
756 range: function()
757 {
758 return this._range;
759 },
760
761 /**
743 * @return {number} 762 * @return {number}
744 */ 763 */
745 lineNumber: function() 764 lineNumber: function()
pfeldman 2015/10/26 18:08:49 We can not remove these in favor of the one above.
wes 2015/10/26 22:16:32 Is there an action for me on this comment, or is t
746 { 765 {
747 return this._lineNumber; 766 return this._range.startLine;
748 }, 767 },
749 768
750 /** 769 /**
751 * @return {(number|undefined)} 770 * @return {(number|undefined)}
752 */ 771 */
753 columnNumber: function() 772 columnNumber: function()
pfeldman 2015/10/26 18:08:49 We can not remove these in favor of the one above.
wes 2015/10/26 22:16:32 Same as above?
754 { 773 {
755 return this._columnNumber; 774 return this._range.startColumn;
756 }, 775 },
757 776
758 /** 777 /**
759 * @param {!WebInspector.SourceFrameMessage} another 778 * @param {!WebInspector.SourceFrameMessage} another
760 * @return {boolean} 779 * @return {boolean}
761 */ 780 */
762 isEqual: function(another) 781 isEqual: function(another)
763 { 782 {
764 return this.messageText() === another.messageText() && this.level() === another.level() && this.lineNumber() === another.lineNumber() && this.columnNumb er() === another.columnNumber(); 783 return this.messageText() === another.messageText() &&
pfeldman 2015/10/26 18:08:49 poor formatting.
wes 2015/10/26 22:16:32 Acknowledged.
784 this.level() === another.level() &&
785 this.range().equal(another.range());
765 } 786 }
766 } 787 }
767 788
768 WebInspector.SourceFrame._iconClassPerLevel = {}; 789 WebInspector.SourceFrame._iconClassPerLevel = {};
769 WebInspector.SourceFrame._iconClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Error] = "error-icon"; 790 WebInspector.SourceFrame._iconClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Error] = "error-icon";
770 WebInspector.SourceFrame._iconClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Warning] = "warning-icon"; 791 WebInspector.SourceFrame._iconClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Warning] = "warning-icon";
771 792
772 WebInspector.SourceFrame._lineClassPerLevel = {}; 793 WebInspector.SourceFrame._lineClassPerLevel = {};
773 WebInspector.SourceFrame._lineClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Error] = "text-editor-line-with-error"; 794 WebInspector.SourceFrame._lineClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Error] = "text-editor-line-with-error";
774 WebInspector.SourceFrame._lineClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Warning] = "text-editor-line-with-warning"; 795 WebInspector.SourceFrame._lineClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Warning] = "text-editor-line-with-warning";
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 */ 880 */
860 _updateWavePosition: function(lineNumber, columnNumber) 881 _updateWavePosition: function(lineNumber, columnNumber)
861 { 882 {
862 lineNumber = Math.min(lineNumber, this._textEditor.linesCount - 1); 883 lineNumber = Math.min(lineNumber, this._textEditor.linesCount - 1);
863 var lineText = this._textEditor.line(lineNumber); 884 var lineText = this._textEditor.line(lineNumber);
864 columnNumber = Math.min(columnNumber, lineText.length); 885 columnNumber = Math.min(columnNumber, lineText.length);
865 var lineIndent = WebInspector.TextUtils.lineIndent(lineText).length; 886 var lineIndent = WebInspector.TextUtils.lineIndent(lineText).length;
866 var base = this._textEditor.cursorPositionToCoordinates(lineNumber, 0); 887 var base = this._textEditor.cursorPositionToCoordinates(lineNumber, 0);
867 888
868 var start = this._textEditor.cursorPositionToCoordinates(lineNumber, Mat h.max(columnNumber - 1, lineIndent)); 889 var start = this._textEditor.cursorPositionToCoordinates(lineNumber, Mat h.max(columnNumber - 1, lineIndent));
890 if (!start)
891 return; //stale data - columnNumber is already gone, wait for future update and for UI to settle
869 var end = this._textEditor.cursorPositionToCoordinates(lineNumber, lineT ext.length); 892 var end = this._textEditor.cursorPositionToCoordinates(lineNumber, lineT ext.length);
870 /** @const */ 893 /** @const */
871 var codeMirrorLinesLeftPadding = 4; 894 var codeMirrorLinesLeftPadding = 4;
872 this._wave.style.left = (start.x - base.x + codeMirrorLinesLeftPadding) + "px"; 895 this._wave.style.left = (start.x - base.x + codeMirrorLinesLeftPadding) + "px";
873 this._wave.style.width = (end.x - start.x) + "px"; 896 this._wave.style.width = (end.x - start.x) + "px";
874 }, 897 },
875 898
876 /** 899 /**
877 * @return {!Element} 900 * @return {!Element}
878 */ 901 */
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
1050 1073
1051 /** 1074 /**
1052 * @param {!WebInspector.SourceFrameMessage} a 1075 * @param {!WebInspector.SourceFrameMessage} a
1053 * @param {!WebInspector.SourceFrameMessage} b 1076 * @param {!WebInspector.SourceFrameMessage} b
1054 * @return {number} 1077 * @return {number}
1055 */ 1078 */
1056 WebInspector.SourceFrameMessage.messageLevelComparator = function(a, b) 1079 WebInspector.SourceFrameMessage.messageLevelComparator = function(a, b)
1057 { 1080 {
1058 return WebInspector.SourceFrameMessage._messageLevelPriority[a.level()] - We bInspector.SourceFrameMessage._messageLevelPriority[b.level()]; 1081 return WebInspector.SourceFrameMessage._messageLevelPriority[a.level()] - We bInspector.SourceFrameMessage._messageLevelPriority[b.level()];
1059 } 1082 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698