OLD | NEW |
---|---|
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 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
593 var messageBucket = this._rowMessageBuckets[lineNumber]; | 593 var messageBucket = this._rowMessageBuckets[lineNumber]; |
594 if (!messageBucket) | 594 if (!messageBucket) |
595 return; | 595 return; |
596 messageBucket.removeMessage(message); | 596 messageBucket.removeMessage(message); |
597 if (!messageBucket.uniqueMessagesCount()) { | 597 if (!messageBucket.uniqueMessagesCount()) { |
598 messageBucket.detachFromEditor(); | 598 messageBucket.detachFromEditor(); |
599 delete this._rowMessageBuckets[lineNumber]; | 599 delete this._rowMessageBuckets[lineNumber]; |
600 } | 600 } |
601 }, | 601 }, |
602 | 602 |
603 populateLineGutterContextMenu: function(contextMenu, lineNumber) | 603 /** |
604 * @return {!Array<!WebInspector.SourceFrameMessage>} | |
605 */ | |
606 getMessagesFromSource: function() | |
wes
2015/08/14 00:55:05
This is marked for removal.
| |
604 { | 607 { |
608 var ret = []; | |
609 for (var line in this._rowMessageBuckets) { | |
610 if (this._rowMessageBuckets.hasOwnProperty(line)) { | |
611 var bucket = this._rowMessageBuckets[line]; | |
612 ret.concat(bucket._messages); | |
613 } | |
614 } | |
615 return ret; | |
605 }, | 616 }, |
606 | 617 |
607 populateTextAreaContextMenu: function(contextMenu, lineNumber, columnNumber) | 618 setMessagesForSource: function(messages) { |
608 { | 619 this.clearMessages(); |
620 for (var index = 0; index < messages.length; index++) { | |
621 var message = messages[index]; | |
622 this.addMessageToSource(message); | |
623 } | |
609 }, | 624 }, |
610 | 625 |
611 /** | 626 /** |
627 * @return {!Promise} | |
628 */ | |
629 populateLineGutterContextMenu: function(contextMenu, lineNumber) | |
630 { | |
631 return Promise.resolve(); | |
632 }, | |
633 | |
634 /** | |
635 * @return {!Promise} | |
636 */ | |
637 populateTextAreaContextMenu: function(contextMenu, lineNumber, columnNumber) | |
638 { | |
639 return Promise.resolve(); | |
640 }, | |
641 | |
642 /** | |
612 * @param {?WebInspector.TextRange} from | 643 * @param {?WebInspector.TextRange} from |
613 * @param {?WebInspector.TextRange} to | 644 * @param {?WebInspector.TextRange} to |
614 */ | 645 */ |
615 onJumpToPosition: function(from, to) | 646 onJumpToPosition: function(from, to) |
616 { | 647 { |
617 this.dispatchEventToListeners(WebInspector.SourceFrame.Events.JumpHappen ed, { | 648 this.dispatchEventToListeners(WebInspector.SourceFrame.Events.JumpHappen ed, { |
618 from: from, | 649 from: from, |
619 to: to | 650 to: to |
620 }); | 651 }); |
621 }, | 652 }, |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
677 e.consume(true); | 708 e.consume(true); |
678 }, | 709 }, |
679 | 710 |
680 __proto__: WebInspector.VBox.prototype | 711 __proto__: WebInspector.VBox.prototype |
681 } | 712 } |
682 | 713 |
683 /** | 714 /** |
684 * @constructor | 715 * @constructor |
685 * @param {string} messageText | 716 * @param {string} messageText |
686 * @param {!WebInspector.SourceFrameMessage.Level} level | 717 * @param {!WebInspector.SourceFrameMessage.Level} level |
687 * @param {number} lineNumber | 718 * @param {{line: number, column: (number|undefined)}} start |
688 * @param {number=} columnNumber | 719 * @param {{line: number, column: (number|undefined)}} end |
689 */ | 720 */ |
690 WebInspector.SourceFrameMessage = function(messageText, level, lineNumber, colum nNumber) | 721 WebInspector.SourceFrameMessage = function(messageText, level, start, end) |
691 { | 722 { |
692 this._messageText = messageText; | 723 this._messageText = messageText; |
693 this._level = level; | 724 this._level = level; |
694 this._lineNumber = lineNumber; | 725 this._start = { |
695 this._columnNumber = columnNumber; | 726 line: start.line, |
727 column: start.column | |
728 }; | |
729 this._end = { | |
730 line: end.line, | |
731 column: end.column | |
732 }; | |
696 } | 733 } |
697 | 734 |
698 /** | 735 /** |
699 * @enum {string} | 736 * @enum {string} |
700 */ | 737 */ |
701 WebInspector.SourceFrameMessage.Level = { | 738 WebInspector.SourceFrameMessage.Level = { |
702 Error: "Error", | 739 Error: "Error", |
703 Warning: "Warning" | 740 Warning: "Warning" |
704 } | 741 } |
705 | 742 |
706 /** | 743 /** |
707 * @param {!WebInspector.ConsoleMessage} consoleMessage | 744 * @param {!WebInspector.ConsoleMessage} consoleMessage |
708 * @param {number} lineNumber | 745 * @param {number} lineNumber |
709 * @param {number} columnNumber | 746 * @param {number} columnNumber |
710 * @return {!WebInspector.SourceFrameMessage} | 747 * @return {!WebInspector.SourceFrameMessage} |
711 */ | 748 */ |
712 WebInspector.SourceFrameMessage.fromConsoleMessage = function(consoleMessage, li neNumber, columnNumber) | 749 WebInspector.SourceFrameMessage.fromConsoleMessage = function(consoleMessage, li neNumber, columnNumber) |
713 { | 750 { |
714 console.assert(consoleMessage.level === WebInspector.ConsoleMessage.MessageL evel.Error || consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel. Warning); | 751 console.assert(consoleMessage.level === WebInspector.ConsoleMessage.MessageL evel.Error || consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel. Warning); |
715 var level = consoleMessage.level === WebInspector.ConsoleMessage.MessageLeve l.Error ? WebInspector.SourceFrameMessage.Level.Error : WebInspector.SourceFrame Message.Level.Warning; | 752 var level = consoleMessage.level === WebInspector.ConsoleMessage.MessageLeve l.Error ? WebInspector.SourceFrameMessage.Level.Error : WebInspector.SourceFrame Message.Level.Warning; |
716 return new WebInspector.SourceFrameMessage(consoleMessage.messageText, level , lineNumber, columnNumber); | 753 var location = {line: lineNumber, column: columnNumber}; |
754 return new WebInspector.SourceFrameMessage(consoleMessage.messageText, level , location, location); | |
717 } | 755 } |
718 | 756 |
719 WebInspector.SourceFrameMessage.prototype = { | 757 WebInspector.SourceFrameMessage.prototype = { |
720 /** | 758 /** |
721 * @return {string} | 759 * @return {string} |
722 */ | 760 */ |
723 messageText: function() | 761 messageText: function() |
724 { | 762 { |
725 return this._messageText; | 763 return this._messageText; |
726 }, | 764 }, |
727 | 765 |
728 /** | 766 /** |
729 * @return {!WebInspector.SourceFrameMessage.Level} | 767 * @return {!WebInspector.SourceFrameMessage.Level} |
730 */ | 768 */ |
731 level: function() | 769 level: function() |
732 { | 770 { |
733 return this._level; | 771 return this._level; |
734 }, | 772 }, |
735 | 773 |
736 /** | 774 /** |
775 * @return {{line: number, column: (number|undefined)}} | |
776 */ | |
777 start: function() { | |
778 return this._start; | |
779 }, | |
780 | |
781 /** | |
782 * @return {{line: number, column: (number|undefined)}} | |
783 */ | |
784 end: function() { | |
785 return this._end; | |
786 }, | |
787 | |
788 /** | |
737 * @return {number} | 789 * @return {number} |
738 */ | 790 */ |
739 lineNumber: function() | 791 lineNumber: function() |
740 { | 792 { |
741 return this._lineNumber; | 793 return this._start.line; |
742 }, | 794 }, |
743 | 795 |
744 /** | 796 /** |
745 * @return {(number|undefined)} | 797 * @return {(number|undefined)} |
746 */ | 798 */ |
747 columnNumber: function() | 799 columnNumber: function() |
748 { | 800 { |
749 return this._columnNumber; | 801 return this._start.column; |
750 }, | 802 }, |
751 | 803 |
752 /** | 804 /** |
753 * @param {!WebInspector.SourceFrameMessage} another | 805 * @param {!WebInspector.SourceFrameMessage} another |
754 * @return {boolean} | 806 * @return {boolean} |
755 */ | 807 */ |
756 isEqual: function(another) | 808 isEqual: function(another) |
757 { | 809 { |
758 return this.messageText() === another.messageText() && this.level() === another.level() && this.lineNumber() === another.lineNumber() && this.columnNumb er() === another.columnNumber(); | 810 return this.messageText() === another.messageText() && |
811 this.level() === another.level() && | |
812 this.lineNumber() === another.lineNumber() && | |
813 this.columnNumber() === another.columnNumber() && | |
814 this.end().line === another.end().line && | |
815 this.end().column === another.end().column; | |
759 } | 816 } |
760 } | 817 } |
761 | 818 |
762 WebInspector.SourceFrame._iconClassPerLevel = {}; | 819 WebInspector.SourceFrame._iconClassPerLevel = {}; |
763 WebInspector.SourceFrame._iconClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Error] = "error-icon"; | 820 WebInspector.SourceFrame._iconClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Error] = "error-icon"; |
764 WebInspector.SourceFrame._iconClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Warning] = "warning-icon"; | 821 WebInspector.SourceFrame._iconClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Warning] = "warning-icon"; |
765 | 822 |
766 WebInspector.SourceFrame._lineClassPerLevel = {}; | 823 WebInspector.SourceFrame._lineClassPerLevel = {}; |
767 WebInspector.SourceFrame._lineClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Error] = "text-editor-line-with-error"; | 824 WebInspector.SourceFrame._lineClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Error] = "text-editor-line-with-error"; |
768 WebInspector.SourceFrame._lineClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Warning] = "text-editor-line-with-warning"; | 825 WebInspector.SourceFrame._lineClassPerLevel[WebInspector.SourceFrameMessage.Leve l.Warning] = "text-editor-line-with-warning"; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
851 * @param {number} lineNumber | 908 * @param {number} lineNumber |
852 * @param {number} columnNumber | 909 * @param {number} columnNumber |
853 */ | 910 */ |
854 _updateWavePosition: function(lineNumber, columnNumber) | 911 _updateWavePosition: function(lineNumber, columnNumber) |
855 { | 912 { |
856 var lineText = this._textEditor.line(lineNumber); | 913 var lineText = this._textEditor.line(lineNumber); |
857 var lineIndent = WebInspector.TextUtils.lineIndent(lineText).length; | 914 var lineIndent = WebInspector.TextUtils.lineIndent(lineText).length; |
858 var base = this._textEditor.cursorPositionToCoordinates(lineNumber, 0); | 915 var base = this._textEditor.cursorPositionToCoordinates(lineNumber, 0); |
859 | 916 |
860 var start = this._textEditor.cursorPositionToCoordinates(lineNumber, Mat h.max(columnNumber - 1, lineIndent)); | 917 var start = this._textEditor.cursorPositionToCoordinates(lineNumber, Mat h.max(columnNumber - 1, lineIndent)); |
918 if (!start) { | |
919 return; //stale data - columnNumber is already gone, wait for future update and for UI to settle | |
920 } | |
861 var end = this._textEditor.cursorPositionToCoordinates(lineNumber, lineT ext.length); | 921 var end = this._textEditor.cursorPositionToCoordinates(lineNumber, lineT ext.length); |
862 /** @const */ | 922 /** @const */ |
863 var codeMirrorLinesLeftPadding = 4; | 923 var codeMirrorLinesLeftPadding = 4; |
864 this._wave.style.left = (start.x - base.x + codeMirrorLinesLeftPadding) + "px"; | 924 this._wave.style.left = (start.x - base.x + codeMirrorLinesLeftPadding) + "px"; |
865 this._wave.style.width = (end.x - start.x) + "px"; | 925 this._wave.style.width = (end.x - start.x) + "px"; |
866 }, | 926 }, |
867 | 927 |
868 /** | 928 /** |
869 * @return {!Element} | 929 * @return {!Element} |
870 */ | 930 */ |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1003 /** | 1063 /** |
1004 * @override | 1064 * @override |
1005 */ | 1065 */ |
1006 editorFocused: function() | 1066 editorFocused: function() |
1007 { | 1067 { |
1008 this._sourceFrame._editorFocused(); | 1068 this._sourceFrame._editorFocused(); |
1009 }, | 1069 }, |
1010 | 1070 |
1011 /** | 1071 /** |
1012 * @override | 1072 * @override |
1073 * @param {!WebInspector.ContextMenu} contextMenu | |
1074 * @param {number} lineNumber | |
1075 * @return {!Promise} | |
1013 */ | 1076 */ |
1014 populateLineGutterContextMenu: function(contextMenu, lineNumber) | 1077 populateLineGutterContextMenu: function(contextMenu, lineNumber) |
pfeldman
2015/08/13 21:15:47
This is worth a separate patch.
wes
2015/08/14 00:55:05
Making the context menu flow async in general, or
| |
1015 { | 1078 { |
1016 this._sourceFrame.populateLineGutterContextMenu(contextMenu, lineNumber) ; | 1079 return this._sourceFrame.populateLineGutterContextMenu(contextMenu, line Number); |
1017 }, | 1080 }, |
1018 | 1081 |
1019 /** | 1082 /** |
1020 * @override | 1083 * @override |
1084 * @param {!WebInspector.ContextMenu} contextMenu | |
1085 * @param {number} lineNumber | |
1086 * @param {number} columnNumber | |
1087 * @return {!Promise} | |
1021 */ | 1088 */ |
1022 populateTextAreaContextMenu: function(contextMenu, lineNumber, columnNumber) | 1089 populateTextAreaContextMenu: function(contextMenu, lineNumber, columnNumber) |
1023 { | 1090 { |
1024 this._sourceFrame.populateTextAreaContextMenu(contextMenu, lineNumber, c olumnNumber); | 1091 return this._sourceFrame.populateTextAreaContextMenu(contextMenu, lineNu mber, columnNumber); |
1025 }, | 1092 }, |
1026 | 1093 |
1027 /** | 1094 /** |
1028 * @override | 1095 * @override |
1029 * @param {?WebInspector.TextRange} from | 1096 * @param {?WebInspector.TextRange} from |
1030 * @param {?WebInspector.TextRange} to | 1097 * @param {?WebInspector.TextRange} to |
1031 */ | 1098 */ |
1032 onJumpToPosition: function(from, to) | 1099 onJumpToPosition: function(from, to) |
1033 { | 1100 { |
1034 this._sourceFrame.onJumpToPosition(from, to); | 1101 this._sourceFrame.onJumpToPosition(from, to); |
1035 } | 1102 } |
1036 } | 1103 } |
1037 | 1104 |
1038 WebInspector.SourceFrameMessage._messageLevelPriority = { | 1105 WebInspector.SourceFrameMessage._messageLevelPriority = { |
1039 "Warning": 3, | 1106 "Warning": 3, |
1040 "Error": 4 | 1107 "Error": 4 |
1041 }; | 1108 }; |
1042 | 1109 |
1043 /** | 1110 /** |
1044 * @param {!WebInspector.SourceFrameMessage} a | 1111 * @param {!WebInspector.SourceFrameMessage} a |
1045 * @param {!WebInspector.SourceFrameMessage} b | 1112 * @param {!WebInspector.SourceFrameMessage} b |
1046 * @return {number} | 1113 * @return {number} |
1047 */ | 1114 */ |
1048 WebInspector.SourceFrameMessage.messageLevelComparator = function(a, b) | 1115 WebInspector.SourceFrameMessage.messageLevelComparator = function(a, b) |
1049 { | 1116 { |
1050 return WebInspector.SourceFrameMessage._messageLevelPriority[a.level()] - We bInspector.SourceFrameMessage._messageLevelPriority[b.level()]; | 1117 return WebInspector.SourceFrameMessage._messageLevelPriority[a.level()] - We bInspector.SourceFrameMessage._messageLevelPriority[b.level()]; |
1051 } | 1118 } |
OLD | NEW |