Chromium Code Reviews| 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 |