Changeset 52439 in webkit
- Timestamp:
- Dec 21, 2009, 3:00:06 AM (15 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 3 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r52438 r52439 1 2009-12-20 Pavel Feldman <pfeldman@chromium.org> 2 3 Reviewed by Eric Seidel. 4 5 Web Inspector: extract syntax highlighters into separate files. 6 7 https://bugs.webkit.org/show_bug.cgi?id=32803 8 9 * WebCore.gypi: 10 * WebCore.vcproj/WebCore.vcproj: 11 * inspector/front-end/CSSSourceSyntaxHighlighter.js: Added. 12 (WebInspector.CSSSourceSyntaxHighlighter): 13 * inspector/front-end/JavaScriptSourceSyntaxHighlighter.js: Added. 14 (WebInspector.JavaScriptSourceSyntaxHighlighter): 15 (WebInspector.JavaScriptSourceSyntaxHighlighter.): 16 * inspector/front-end/SourceFrame.js: 17 * inspector/front-end/SourceSyntaxHighlighter.js: Added. 18 (WebInspector.SourceSyntaxHighlighter): 19 (WebInspector.SourceSyntaxHighlighter.prototype.createSpan): 20 (WebInspector.SourceSyntaxHighlighter.prototype.process.processChunk): 21 (WebInspector.SourceSyntaxHighlighter.prototype.process.moveToNextLine): 22 (WebInspector.SourceSyntaxHighlighter.prototype.process): 23 (WebInspector.SourceSyntaxHighlighter.prototype.lex): 24 (WebInspector.SourceSyntaxHighlighter.prototype.appendNonToken): 25 (WebInspector.SourceSyntaxHighlighter.prototype.syntaxHighlightNode): 26 * inspector/front-end/WebKit.qrc: 27 * inspector/front-end/inspector.html: 28 1 29 2009-12-18 Julien Chaffraix <jchaffraix@pleyo.com> 2 30 -
trunk/WebCore/WebCore.gypi
r52213 r52439 3658 3658 'inspector/front-end/ContextMenu.js', 3659 3659 'inspector/front-end/CookieItemsView.js', 3660 'inspector/front-end/CSSSourceSyntaxHighlighter.js', 3660 3661 'inspector/front-end/Database.js', 3661 3662 'inspector/front-end/DatabaseQueryView.js', … … 3676 3677 'inspector/front-end/InjectedScriptAccess.js', 3677 3678 'inspector/front-end/inspector.js', 3679 'inspector/front-end/JavaScriptSourceSyntaxHighlighter.js', 3678 3680 'inspector/front-end/KeyboardShortcut.js', 3679 3681 'inspector/front-end/MetricsSidebarPane.js', … … 3702 3704 'inspector/front-end/SidebarTreeElement.js', 3703 3705 'inspector/front-end/SourceFrame.js', 3706 'inspector/front-end/SourceSyntaxHighlighter.js', 3704 3707 'inspector/front-end/SourceView.js', 3705 3708 'inspector/front-end/StatusBarButton.js', -
trunk/WebCore/WebCore.vcproj/WebCore.vcproj
r52149 r52439 42457 42457 </File> 42458 42458 <File 42459 RelativePath="..\inspector\front-end\CSSSourceSyntaxHighlighter.js" 42460 > 42461 </File> 42462 <File 42459 42463 RelativePath="..\inspector\front-end\Database.js" 42460 42464 > … … 42537 42541 </File> 42538 42542 <File 42543 RelativePath="..\inspector\front-end\JavaScriptSourceSyntaxHighlighter.js" 42544 > 42545 </File> 42546 <File 42539 42547 RelativePath="..\inspector\front-end\MetricsSidebarPane.js" 42540 42548 > … … 42634 42642 <File 42635 42643 RelativePath="..\inspector\front-end\SourceFrame.js" 42644 > 42645 </File> 42646 <File 42647 RelativePath="..\inspector\front-end\SourceSyntaxHighlighter.js" 42636 42648 > 42637 42649 </File> -
trunk/WebCore/inspector/front-end/SourceFrame.js
r52099 r52439 737 737 738 738 WebInspector.SourceFrame.prototype.__proto__ = WebInspector.Object.prototype; 739 740 WebInspector.SourceSyntaxHighlighter = function(table, sourceFrame)741 {742 this.table = table;743 this.sourceFrame = sourceFrame;744 }745 746 WebInspector.SourceSyntaxHighlighter.prototype = {747 createSpan: function(content, className)748 {749 var span = document.createElement("span");750 span.className = className;751 span.appendChild(document.createTextNode(content));752 return span;753 },754 755 process: function()756 {757 // Split up the work into chunks so we don't block the758 // UI thread while processing.759 760 var rows = this.table.rows;761 var rowsLength = rows.length;762 const tokensPerChunk = 100;763 const lineLengthLimit = 20000;764 765 var boundProcessChunk = processChunk.bind(this);766 var processChunkInterval = setInterval(boundProcessChunk, 25);767 boundProcessChunk();768 769 function processChunk()770 {771 for (var i = 0; i < tokensPerChunk; i++) {772 if (this.cursor >= this.lineCode.length)773 moveToNextLine.call(this);774 if (this.lineIndex >= rowsLength) {775 this.sourceFrame.dispatchEventToListeners("syntax highlighting complete");776 return;777 }778 if (this.cursor > lineLengthLimit) {779 var codeFragment = this.lineCode.substring(this.cursor);780 this.nonToken += codeFragment;781 this.cursor += codeFragment.length;782 }783 784 this.lex();785 }786 }787 788 function moveToNextLine()789 {790 this.appendNonToken();791 792 var row = rows[this.lineIndex];793 var line = row ? row.cells[1] : null;794 if (line && this.newLine) {795 line.removeChildren();796 797 if (this.messageBubble)798 this.newLine.appendChild(this.messageBubble);799 800 line.parentNode.insertBefore(this.newLine, line);801 line.parentNode.removeChild(line);802 803 this.newLine = null;804 }805 this.lineIndex++;806 if (this.lineIndex >= rowsLength && processChunkInterval) {807 clearInterval(processChunkInterval);808 this.sourceFrame.dispatchEventToListeners("syntax highlighting complete");809 return;810 }811 row = rows[this.lineIndex];812 line = row ? row.cells[1] : null;813 814 this.messageBubble = null;815 if (line.lastChild && line.lastChild.nodeType === Node.ELEMENT_NODE && line.lastChild.hasStyleClass("webkit-html-message-bubble")) {816 this.messageBubble = line.lastChild;817 line.removeChild(this.messageBubble);818 }819 820 this.lineCode = line.textContent;821 this.newLine = line.cloneNode(false);822 this.cursor = 0;823 if (!line)824 moveToNextLine();825 }826 },827 828 lex: function()829 {830 var token = null;831 var codeFragment = this.lineCode.substring(this.cursor);832 833 for (var i = 0; i < this.rules.length; i++) {834 var rule = this.rules[i];835 var ruleContinueStateCondition = typeof rule.continueStateCondition === "undefined" ? this.ContinueState.None : rule.continueStateCondition;836 if (this.continueState === ruleContinueStateCondition) {837 if (typeof rule.lexStateCondition !== "undefined" && this.lexState !== rule.lexStateCondition)838 continue;839 var match = rule.pattern.exec(codeFragment);840 if (match) {841 token = match[0];842 if (token) {843 if (!rule.dontAppendNonToken)844 this.appendNonToken();845 return rule.action.call(this, token);846 }847 }848 }849 }850 this.nonToken += codeFragment[0];851 this.cursor++;852 },853 854 appendNonToken: function ()855 {856 if (this.nonToken.length > 0) {857 this.newLine.appendChild(document.createTextNode(this.nonToken));858 this.nonToken = "";859 }860 },861 862 syntaxHighlightNode: function(node)863 {864 this.lineCode = node.textContent;865 node.removeChildren();866 this.newLine = node;867 this.cursor = 0;868 while (true) {869 if (this.cursor >= this.lineCode.length) {870 var codeFragment = this.lineCode.substring(this.cursor);871 this.nonToken += codeFragment;872 this.cursor += codeFragment.length;873 this.appendNonToken();874 this.newLine = null;875 return;876 }877 878 this.lex();879 }880 }881 }882 883 WebInspector.CSSSourceSyntaxHighlighter = function(table, sourceFrame) {884 WebInspector.SourceSyntaxHighlighter.call(this, table, sourceFrame);885 886 this.LexState = {887 Initial: 1,888 DeclarationProperty: 2,889 DeclarationValue: 3,890 AtMedia: 4,891 AtRule: 5,892 AtKeyframes: 6893 };894 this.ContinueState = {895 None: 0,896 Comment: 1897 };898 899 this.nonToken = "";900 this.cursor = 0;901 this.lineIndex = -1;902 this.lineCode = "";903 this.newLine = null;904 this.lexState = this.LexState.Initial;905 this.continueState = this.ContinueState.None;906 907 const urlPattern = /^url\(\s*(?:(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')|(?:[!#$%&*-~\w]|(?:\\[\da-f]{1,6}\s?|\.))*)\s*\)/i;908 const stringPattern = /^(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*')/i;909 const identPattern = /^-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*/i;910 const startBlockPattern = /^{/i;911 const endBlockPattern = /^}/i;912 this.rules = [{913 pattern: /^\/\*[^\*]*\*+([^\/*][^*]*\*+)*\//i,914 action: commentAction915 }, {916 pattern: /^(?:\/\*(?:[^\*]|\*[^\/])*)/i,917 action: commentStartAction918 }, {919 pattern: /^(?:(?:[^\*]|\*[^\/])*\*+\/)/i,920 action: commentEndAction,921 continueStateCondition: this.ContinueState.Comment922 }, {923 pattern: /^.*/i,924 action: commentMiddleAction,925 continueStateCondition: this.ContinueState.Comment926 }, {927 pattern: /^(?:(?:-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*|\*)(?:#-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*|\.-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*|\[\s*-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*\s*(?:(?:=|~=|\|=)\s*(?:-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*|(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*'))\s*)?\]|:(?:-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*|-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*\(\s*(?:-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*\s*)?\)))*|(?:#-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*|\.-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*|\[\s*-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*\s*(?:(?:=|~=|\|=)\s*(?:-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*|(?:"(?:[^\\\"]|(?:\\[\da-f]{1,6}\s?|\.))*"|'(?:[^\\\']|(?:\\[\da-f]{1,6}\s?|\.))*'))\s*)?\]|:(?:-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*|-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*\(\s*(?:-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*\s*)?\)))+)/i,928 action: selectorAction,929 lexStateCondition: this.LexState.Initial930 }, {931 pattern: startBlockPattern,932 action: startRulesetBlockAction,933 lexStateCondition: this.LexState.Initial,934 dontAppendNonToken: true935 }, {936 pattern: identPattern,937 action: propertyAction,938 lexStateCondition: this.LexState.DeclarationProperty,939 dontAppendNonToken: true940 }, {941 pattern: /^:/i,942 action: declarationColonAction,943 lexStateCondition: this.LexState.DeclarationProperty,944 dontAppendNonToken: true945 }, {946 pattern: /^(?:#(?:[\da-f]{6}|[\da-f]{3})|rgba\(\s*(?:\d+|\d*\.\d+)%?\s*,\s*(?:\d+|\d*\.\d+)%?\s*,\s*(?:\d+|\d*\.\d+)%?\s*,\s*(?:\d+|\d*\.\d+)%?\s*\)|hsla\(\s*(?:\d+|\d*\.\d+)%?\s*,\s*(?:\d+|\d*\.\d+)%?\s*,\s*(?:\d+|\d*\.\d+)%?\s*,\s*(?:\d+|\d*\.\d+)%?\s*\)|rgb\(\s*(?:\d+|\d*\.\d+)%?\s*,\s*(?:\d+|\d*\.\d+)%?\s*,\s*(?:\d+|\d*\.\d+)%?\s*\)|hsl\(\s*(?:\d+|\d*\.\d+)%?\s*,\s*(?:\d+|\d*\.\d+)%?\s*,\s*(?:\d+|\d*\.\d+)%?\s*\))/i,947 action: colorAction,948 lexStateCondition: this.LexState.DeclarationValue949 }, {950 pattern: /^(?:-?(?:\d+|\d*\.\d+)(?:em|rem|__qem|ex|px|cm|mm|in|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz|%)?)/i,951 action: numvalueAction,952 lexStateCondition: this.LexState.DeclarationValue953 }, {954 pattern: urlPattern,955 action: urlAction,956 lexStateCondition: this.LexState.DeclarationValue957 }, {958 pattern: stringPattern,959 action: stringAction,960 lexStateCondition: this.LexState.DeclarationValue961 }, {962 pattern: /^!\s*important/i,963 action: importantAction,964 lexStateCondition: this.LexState.DeclarationValue965 }, {966 pattern: identPattern,967 action: valueIdentAction,968 lexStateCondition: this.LexState.DeclarationValue,969 dontAppendNonToken: true970 }, {971 pattern: /^;/i,972 action: declarationSemicolonAction,973 lexStateCondition: this.LexState.DeclarationValue,974 dontAppendNonToken: true975 }, {976 pattern: endBlockPattern,977 action: endRulesetBlockAction,978 lexStateCondition: this.LexState.DeclarationProperty,979 dontAppendNonToken: true980 }, {981 pattern: endBlockPattern,982 action: endRulesetBlockAction,983 lexStateCondition: this.LexState.DeclarationValue,984 dontAppendNonToken: true985 }, {986 pattern: /^@media/i,987 action: atMediaAction,988 lexStateCondition: this.LexState.Initial989 }, {990 pattern: startBlockPattern,991 action: startAtMediaBlockAction,992 lexStateCondition: this.LexState.AtMedia,993 dontAppendNonToken: true994 }, {995 pattern: /^@-webkit-keyframes/i,996 action: atKeyframesAction,997 lexStateCondition: this.LexState.Initial998 }, {999 pattern: startBlockPattern,1000 action: startAtMediaBlockAction,1001 lexStateCondition: this.LexState.AtKeyframes,1002 dontAppendNonToken: true1003 }, {1004 pattern: /^@-?(?:\w|(?:\\[\da-f]{1,6}\s?|\.))(?:[-\w]|(?:\\[\da-f]{1,6}\s?|\.))*/i,1005 action: atRuleAction,1006 lexStateCondition: this.LexState.Initial1007 }, {1008 pattern: /^;/i,1009 action: endAtRuleAction,1010 lexStateCondition: this.LexState.AtRule1011 }, {1012 pattern: urlPattern,1013 action: urlAction,1014 lexStateCondition: this.LexState.AtRule1015 }, {1016 pattern: stringPattern,1017 action: stringAction,1018 lexStateCondition: this.LexState.AtRule1019 }, {1020 pattern: stringPattern,1021 action: stringAction,1022 lexStateCondition: this.LexState.AtKeyframes1023 }, {1024 pattern: identPattern,1025 action: atRuleIdentAction,1026 lexStateCondition: this.LexState.AtRule,1027 dontAppendNonToken: true1028 }, {1029 pattern: identPattern,1030 action: atRuleIdentAction,1031 lexStateCondition: this.LexState.AtMedia,1032 dontAppendNonToken: true1033 }, {1034 pattern: startBlockPattern,1035 action: startAtRuleBlockAction,1036 lexStateCondition: this.LexState.AtRule,1037 dontAppendNonToken: true1038 }];1039 1040 function commentAction(token)1041 {1042 this.cursor += token.length;1043 this.newLine.appendChild(this.createSpan(token, "webkit-css-comment"));1044 }1045 1046 function commentStartAction(token)1047 {1048 this.cursor += token.length;1049 this.newLine.appendChild(this.createSpan(token, "webkit-css-comment"));1050 this.continueState = this.ContinueState.Comment;1051 }1052 1053 function commentEndAction(token)1054 {1055 this.cursor += token.length;1056 this.newLine.appendChild(this.createSpan(token, "webkit-css-comment"));1057 this.continueState = this.ContinueState.None;1058 }1059 1060 function commentMiddleAction(token)1061 {1062 this.cursor += token.length;1063 this.newLine.appendChild(this.createSpan(token, "webkit-css-comment"));1064 }1065 1066 function selectorAction(token)1067 {1068 this.cursor += token.length;1069 this.newLine.appendChild(this.createSpan(token, "webkit-css-selector"));1070 }1071 1072 function startRulesetBlockAction(token)1073 {1074 this.cursor += token.length;1075 this.nonToken += token;1076 this.lexState = this.LexState.DeclarationProperty;1077 }1078 1079 function endRulesetBlockAction(token)1080 {1081 this.cursor += token.length;1082 this.nonToken += token;1083 this.lexState = this.LexState.Initial;1084 }1085 1086 const propertyKeywords = {1087 "background": true,1088 "background-attachment": true,1089 "background-clip": true,1090 "background-color": true,1091 "background-image": true,1092 "background-origin": true,1093 "background-position": true,1094 "background-position-x": true,1095 "background-position-y": true,1096 "background-repeat": true,1097 "background-repeat-x": true,1098 "background-repeat-y": true,1099 "background-size": true,1100 "border": true,1101 "border-bottom": true,1102 "border-bottom-color": true,1103 "border-bottom-left-radius": true,1104 "border-bottom-right-radius": true,1105 "border-bottom-style": true,1106 "border-bottom-width": true,1107 "border-collapse": true,1108 "border-color": true,1109 "border-left": true,1110 "border-left-color": true,1111 "border-left-style": true,1112 "border-left-width": true,1113 "border-radius": true,1114 "border-right": true,1115 "border-right-color": true,1116 "border-right-style": true,1117 "border-right-width": true,1118 "border-spacing": true,1119 "border-style": true,1120 "border-top": true,1121 "border-top-color": true,1122 "border-top-left-radius": true,1123 "border-top-right-radius": true,1124 "border-top-style": true,1125 "border-top-width": true,1126 "border-width": true,1127 "bottom": true,1128 "caption-side": true,1129 "clear": true,1130 "clip": true,1131 "color": true,1132 "content": true,1133 "counter-increment": true,1134 "counter-reset": true,1135 "cursor": true,1136 "direction": true,1137 "display": true,1138 "empty-cells": true,1139 "float": true,1140 "font": true,1141 "font-family": true,1142 "font-size": true,1143 "font-stretch": true,1144 "font-style": true,1145 "font-variant": true,1146 "font-weight": true,1147 "height": true,1148 "left": true,1149 "letter-spacing": true,1150 "line-height": true,1151 "list-style": true,1152 "list-style-image": true,1153 "list-style-position": true,1154 "list-style-type": true,1155 "margin": true,1156 "margin-bottom": true,1157 "margin-left": true,1158 "margin-right": true,1159 "margin-top": true,1160 "max-height": true,1161 "max-width": true,1162 "min-height": true,1163 "min-width": true,1164 "opacity": true,1165 "orphans": true,1166 "outline": true,1167 "outline-color": true,1168 "outline-offset": true,1169 "outline-style": true,1170 "outline-width": true,1171 "overflow": true,1172 "overflow-x": true,1173 "overflow-y": true,1174 "padding": true,1175 "padding-bottom": true,1176 "padding-left": true,1177 "padding-right": true,1178 "padding-top": true,1179 "page": true,1180 "page-break-after": true,1181 "page-break-before": true,1182 "page-break-inside": true,1183 "pointer-events": true,1184 "position": true,1185 "quotes": true,1186 "resize": true,1187 "right": true,1188 "size": true,1189 "src": true,1190 "table-layout": true,1191 "text-align": true,1192 "text-decoration": true,1193 "text-indent": true,1194 "text-line-through": true,1195 "text-line-through-color": true,1196 "text-line-through-mode": true,1197 "text-line-through-style": true,1198 "text-line-through-width": true,1199 "text-overflow": true,1200 "text-overline": true,1201 "text-overline-color": true,1202 "text-overline-mode": true,1203 "text-overline-style": true,1204 "text-overline-width": true,1205 "text-rendering": true,1206 "text-shadow": true,1207 "text-transform": true,1208 "text-underline": true,1209 "text-underline-color": true,1210 "text-underline-mode": true,1211 "text-underline-style": true,1212 "text-underline-width": true,1213 "top": true,1214 "unicode-bidi": true,1215 "unicode-range": true,1216 "vertical-align": true,1217 "visibility": true,1218 "white-space": true,1219 "widows": true,1220 "width": true,1221 "word-break": true,1222 "word-spacing": true,1223 "word-wrap": true,1224 "z-index": true,1225 "zoom": true,1226 "-webkit-animation": true,1227 "-webkit-animation-delay": true,1228 "-webkit-animation-direction": true,1229 "-webkit-animation-duration": true,1230 "-webkit-animation-iteration-count": true,1231 "-webkit-animation-name": true,1232 "-webkit-animation-play-state": true,1233 "-webkit-animation-timing-function": true,1234 "-webkit-appearance": true,1235 "-webkit-backface-visibility": true,1236 "-webkit-background-clip": true,1237 "-webkit-background-composite": true,1238 "-webkit-background-origin": true,1239 "-webkit-background-size": true,1240 "-webkit-binding": true,1241 "-webkit-border-fit": true,1242 "-webkit-border-horizontal-spacing": true,1243 "-webkit-border-image": true,1244 "-webkit-border-radius": true,1245 "-webkit-border-vertical-spacing": true,1246 "-webkit-box-align": true,1247 "-webkit-box-direction": true,1248 "-webkit-box-flex": true,1249 "-webkit-box-flex-group": true,1250 "-webkit-box-lines": true,1251 "-webkit-box-ordinal-group": true,1252 "-webkit-box-orient": true,1253 "-webkit-box-pack": true,1254 "-webkit-box-reflect": true,1255 "-webkit-box-shadow": true,1256 "-webkit-box-sizing": true,1257 "-webkit-column-break-after": true,1258 "-webkit-column-break-before": true,1259 "-webkit-column-break-inside": true,1260 "-webkit-column-count": true,1261 "-webkit-column-gap": true,1262 "-webkit-column-rule": true,1263 "-webkit-column-rule-color": true,1264 "-webkit-column-rule-style": true,1265 "-webkit-column-rule-width": true,1266 "-webkit-column-width": true,1267 "-webkit-columns": true,1268 "-webkit-font-size-delta": true,1269 "-webkit-font-smoothing": true,1270 "-webkit-highlight": true,1271 "-webkit-line-break": true,1272 "-webkit-line-clamp": true,1273 "-webkit-margin-bottom-collapse": true,1274 "-webkit-margin-collapse": true,1275 "-webkit-margin-start": true,1276 "-webkit-margin-top-collapse": true,1277 "-webkit-marquee": true,1278 "-webkit-marquee-direction": true,1279 "-webkit-marquee-increment": true,1280 "-webkit-marquee-repetition": true,1281 "-webkit-marquee-speed": true,1282 "-webkit-marquee-style": true,1283 "-webkit-mask": true,1284 "-webkit-mask-attachment": true,1285 "-webkit-mask-box-image": true,1286 "-webkit-mask-clip": true,1287 "-webkit-mask-composite": true,1288 "-webkit-mask-image": true,1289 "-webkit-mask-origin": true,1290 "-webkit-mask-position": true,1291 "-webkit-mask-position-x": true,1292 "-webkit-mask-position-y": true,1293 "-webkit-mask-repeat": true,1294 "-webkit-mask-repeat-x": true,1295 "-webkit-mask-repeat-y": true,1296 "-webkit-mask-size": true,1297 "-webkit-match-nearest-mail-blockquote-color": true,1298 "-webkit-nbsp-mode": true,1299 "-webkit-padding-start": true,1300 "-webkit-perspective": true,1301 "-webkit-perspective-origin": true,1302 "-webkit-perspective-origin-x": true,1303 "-webkit-perspective-origin-y": true,1304 "-webkit-rtl-ordering": true,1305 "-webkit-text-decorations-in-effect": true,1306 "-webkit-text-fill-color": true,1307 "-webkit-text-security": true,1308 "-webkit-text-size-adjust": true,1309 "-webkit-text-stroke": true,1310 "-webkit-text-stroke-color": true,1311 "-webkit-text-stroke-width": true,1312 "-webkit-transform": true,1313 "-webkit-transform-origin": true,1314 "-webkit-transform-origin-x": true,1315 "-webkit-transform-origin-y": true,1316 "-webkit-transform-origin-z": true,1317 "-webkit-transform-style": true,1318 "-webkit-transition": true,1319 "-webkit-transition-delay": true,1320 "-webkit-transition-duration": true,1321 "-webkit-transition-property": true,1322 "-webkit-transition-timing-function": true,1323 "-webkit-user-drag": true,1324 "-webkit-user-modify": true,1325 "-webkit-user-select": true,1326 "-webkit-variable-declaration-block": true1327 };1328 function propertyAction(token)1329 {1330 this.cursor += token.length;1331 if (token in propertyKeywords) {1332 this.appendNonToken.call(this);1333 this.newLine.appendChild(this.createSpan(token, "webkit-css-property"));1334 } else1335 this.nonToken += token;1336 }1337 1338 function declarationColonAction(token)1339 {1340 this.cursor += token.length;1341 this.nonToken += token;1342 this.lexState = this.LexState.DeclarationValue;1343 }1344 1345 const valueKeywords = {1346 "inherit": true,1347 "initial": true,1348 "none": true,1349 "hidden": true,1350 "inset": true,1351 "groove": true,1352 "ridge": true,1353 "outset": true,1354 "dotted": true,1355 "dashed": true,1356 "solid": true,1357 "double": true,1358 "caption": true,1359 "icon": true,1360 "menu": true,1361 "message-box": true,1362 "small-caption": true,1363 "-webkit-mini-control": true,1364 "-webkit-small-control": true,1365 "-webkit-control": true,1366 "status-bar": true,1367 "italic": true,1368 "oblique": true,1369 "all": true,1370 "small-caps": true,1371 "normal": true,1372 "bold": true,1373 "bolder": true,1374 "lighter": true,1375 "xx-small": true,1376 "x-small": true,1377 "small": true,1378 "medium": true,1379 "large": true,1380 "x-large": true,1381 "xx-large": true,1382 "-webkit-xxx-large": true,1383 "smaller": true,1384 "larger": true,1385 "wider": true,1386 "narrower": true,1387 "ultra-condensed": true,1388 "extra-condensed": true,1389 "condensed": true,1390 "semi-condensed": true,1391 "semi-expanded": true,1392 "expanded": true,1393 "extra-expanded": true,1394 "ultra-expanded": true,1395 "serif": true,1396 "sans-serif": true,1397 "cursive": true,1398 "fantasy": true,1399 "monospace": true,1400 "-webkit-body": true,1401 "aqua": true,1402 "black": true,1403 "blue": true,1404 "fuchsia": true,1405 "gray": true,1406 "green": true,1407 "lime": true,1408 "maroon": true,1409 "navy": true,1410 "olive": true,1411 "orange": true,1412 "purple": true,1413 "red": true,1414 "silver": true,1415 "teal": true,1416 "white": true,1417 "yellow": true,1418 "transparent": true,1419 "-webkit-link": true,1420 "-webkit-activelink": true,1421 "activeborder": true,1422 "activecaption": true,1423 "appworkspace": true,1424 "background": true,1425 "buttonface": true,1426 "buttonhighlight": true,1427 "buttonshadow": true,1428 "buttontext": true,1429 "captiontext": true,1430 "graytext": true,1431 "highlight": true,1432 "highlighttext": true,1433 "inactiveborder": true,1434 "inactivecaption": true,1435 "inactivecaptiontext": true,1436 "infobackground": true,1437 "infotext": true,1438 "match": true,1439 "menutext": true,1440 "scrollbar": true,1441 "threeddarkshadow": true,1442 "threedface": true,1443 "threedhighlight": true,1444 "threedlightshadow": true,1445 "threedshadow": true,1446 "window": true,1447 "windowframe": true,1448 "windowtext": true,1449 "-webkit-focus-ring-color": true,1450 "currentcolor": true,1451 "grey": true,1452 "-webkit-text": true,1453 "repeat": true,1454 "repeat-x": true,1455 "repeat-y": true,1456 "no-repeat": true,1457 "clear": true,1458 "copy": true,1459 "source-over": true,1460 "source-in": true,1461 "source-out": true,1462 "source-atop": true,1463 "destination-over": true,1464 "destination-in": true,1465 "destination-out": true,1466 "destination-atop": true,1467 "xor": true,1468 "plus-darker": true,1469 "plus-lighter": true,1470 "baseline": true,1471 "middle": true,1472 "sub": true,1473 "super": true,1474 "text-top": true,1475 "text-bottom": true,1476 "top": true,1477 "bottom": true,1478 "-webkit-baseline-middle": true,1479 "-webkit-auto": true,1480 "left": true,1481 "right": true,1482 "center": true,1483 "justify": true,1484 "-webkit-left": true,1485 "-webkit-right": true,1486 "-webkit-center": true,1487 "outside": true,1488 "inside": true,1489 "disc": true,1490 "circle": true,1491 "square": true,1492 "decimal": true,1493 "decimal-leading-zero": true,1494 "lower-roman": true,1495 "upper-roman": true,1496 "lower-greek": true,1497 "lower-alpha": true,1498 "lower-latin": true,1499 "upper-alpha": true,1500 "upper-latin": true,1501 "hebrew": true,1502 "armenian": true,1503 "georgian": true,1504 "cjk-ideographic": true,1505 "hiragana": true,1506 "katakana": true,1507 "hiragana-iroha": true,1508 "katakana-iroha": true,1509 "inline": true,1510 "block": true,1511 "list-item": true,1512 "run-in": true,1513 "compact": true,1514 "inline-block": true,1515 "table": true,1516 "inline-table": true,1517 "table-row-group": true,1518 "table-header-group": true,1519 "table-footer-group": true,1520 "table-row": true,1521 "table-column-group": true,1522 "table-column": true,1523 "table-cell": true,1524 "table-caption": true,1525 "-webkit-box": true,1526 "-webkit-inline-box": true,1527 "-wap-marquee": true,1528 "auto": true,1529 "crosshair": true,1530 "default": true,1531 "pointer": true,1532 "move": true,1533 "vertical-text": true,1534 "cell": true,1535 "context-menu": true,1536 "alias": true,1537 "progress": true,1538 "no-drop": true,1539 "not-allowed": true,1540 "-webkit-zoom-in": true,1541 "-webkit-zoom-out": true,1542 "e-resize": true,1543 "ne-resize": true,1544 "nw-resize": true,1545 "n-resize": true,1546 "se-resize": true,1547 "sw-resize": true,1548 "s-resize": true,1549 "w-resize": true,1550 "ew-resize": true,1551 "ns-resize": true,1552 "nesw-resize": true,1553 "nwse-resize": true,1554 "col-resize": true,1555 "row-resize": true,1556 "text": true,1557 "wait": true,1558 "help": true,1559 "all-scroll": true,1560 "-webkit-grab": true,1561 "-webkit-grabbing": true,1562 "ltr": true,1563 "rtl": true,1564 "capitalize": true,1565 "uppercase": true,1566 "lowercase": true,1567 "visible": true,1568 "collapse": true,1569 "above": true,1570 "absolute": true,1571 "always": true,1572 "avoid": true,1573 "below": true,1574 "bidi-override": true,1575 "blink": true,1576 "both": true,1577 "close-quote": true,1578 "crop": true,1579 "cross": true,1580 "embed": true,1581 "fixed": true,1582 "hand": true,1583 "hide": true,1584 "higher": true,1585 "invert": true,1586 "landscape": true,1587 "level": true,1588 "line-through": true,1589 "local": true,1590 "loud": true,1591 "lower": true,1592 "-webkit-marquee": true,1593 "mix": true,1594 "no-close-quote": true,1595 "no-open-quote": true,1596 "nowrap": true,1597 "open-quote": true,1598 "overlay": true,1599 "overline": true,1600 "portrait": true,1601 "pre": true,1602 "pre-line": true,1603 "pre-wrap": true,1604 "relative": true,1605 "scroll": true,1606 "separate": true,1607 "show": true,1608 "static": true,1609 "thick": true,1610 "thin": true,1611 "underline": true,1612 "-webkit-nowrap": true,1613 "stretch": true,1614 "start": true,1615 "end": true,1616 "reverse": true,1617 "horizontal": true,1618 "vertical": true,1619 "inline-axis": true,1620 "block-axis": true,1621 "single": true,1622 "multiple": true,1623 "forwards": true,1624 "backwards": true,1625 "ahead": true,1626 "up": true,1627 "down": true,1628 "slow": true,1629 "fast": true,1630 "infinite": true,1631 "slide": true,1632 "alternate": true,1633 "read-only": true,1634 "read-write": true,1635 "read-write-plaintext-only": true,1636 "element": true,1637 "ignore": true,1638 "intrinsic": true,1639 "min-intrinsic": true,1640 "clip": true,1641 "ellipsis": true,1642 "discard": true,1643 "dot-dash": true,1644 "dot-dot-dash": true,1645 "wave": true,1646 "continuous": true,1647 "skip-white-space": true,1648 "break-all": true,1649 "break-word": true,1650 "space": true,1651 "after-white-space": true,1652 "checkbox": true,1653 "radio": true,1654 "push-button": true,1655 "square-button": true,1656 "button": true,1657 "button-bevel": true,1658 "default-button": true,1659 "list-button": true,1660 "listbox": true,1661 "listitem": true,1662 "media-fullscreen-button": true,1663 "media-mute-button": true,1664 "media-play-button": true,1665 "media-seek-back-button": true,1666 "media-seek-forward-button": true,1667 "media-rewind-button": true,1668 "media-return-to-realtime-button": true,1669 "media-slider": true,1670 "media-sliderthumb": true,1671 "media-volume-slider-container": true,1672 "media-volume-slider": true,1673 "media-volume-sliderthumb": true,1674 "media-controls-background": true,1675 "media-current-time-display": true,1676 "media-time-remaining-display": true,1677 "menulist": true,1678 "menulist-button": true,1679 "menulist-text": true,1680 "menulist-textfield": true,1681 "slider-horizontal": true,1682 "slider-vertical": true,1683 "sliderthumb-horizontal": true,1684 "sliderthumb-vertical": true,1685 "caret": true,1686 "searchfield": true,1687 "searchfield-decoration": true,1688 "searchfield-results-decoration": true,1689 "searchfield-results-button": true,1690 "searchfield-cancel-button": true,1691 "textfield": true,1692 "textarea": true,1693 "caps-lock-indicator": true,1694 "round": true,1695 "border": true,1696 "border-box": true,1697 "content": true,1698 "content-box": true,1699 "padding": true,1700 "padding-box": true,1701 "contain": true,1702 "cover": true,1703 "logical": true,1704 "visual": true,1705 "lines": true,1706 "running": true,1707 "paused": true,1708 "flat": true,1709 "preserve-3d": true,1710 "ease": true,1711 "linear": true,1712 "ease-in": true,1713 "ease-out": true,1714 "ease-in-out": true,1715 "document": true,1716 "reset": true,1717 "visiblePainted": true,1718 "visibleFill": true,1719 "visibleStroke": true,1720 "painted": true,1721 "fill": true,1722 "stroke": true,1723 "antialiased": true,1724 "subpixel-antialiased": true,1725 "optimizeSpeed": true,1726 "optimizeLegibility": true,1727 "geometricPrecision": true1728 };1729 function valueIdentAction(token) {1730 this.cursor += token.length;1731 if (token in valueKeywords) {1732 this.appendNonToken.call(this);1733 this.newLine.appendChild(this.createSpan(token, "webkit-css-keyword"));1734 } else1735 this.nonToken += token;1736 }1737 1738 function numvalueAction(token)1739 {1740 this.cursor += token.length;1741 this.newLine.appendChild(this.createSpan(token, "webkit-css-number"));1742 }1743 1744 function declarationSemicolonAction(token)1745 {1746 this.cursor += token.length;1747 this.nonToken += token;1748 this.lexState = this.LexState.DeclarationProperty;1749 }1750 1751 function urlAction(token)1752 {1753 this.cursor += token.length;1754 this.newLine.appendChild(this.createSpan(token, "webkit-css-url"));1755 }1756 1757 function stringAction(token)1758 {1759 this.cursor += token.length;1760 this.newLine.appendChild(this.createSpan(token, "webkit-css-string"));1761 }1762 1763 function colorAction(token)1764 {1765 this.cursor += token.length;1766 this.newLine.appendChild(this.createSpan(token, "webkit-css-color"));1767 }1768 1769 function importantAction(token)1770 {1771 this.cursor += token.length;1772 this.newLine.appendChild(this.createSpan(token, "webkit-css-important"));1773 }1774 1775 function atMediaAction(token)1776 {1777 this.cursor += token.length;1778 this.newLine.appendChild(this.createSpan(token, "webkit-css-at-rule"));1779 this.lexState = this.LexState.AtMedia;1780 }1781 1782 function startAtMediaBlockAction(token)1783 {1784 this.cursor += token.length;1785 this.nonToken += token;1786 this.lexState = this.LexState.Initial;1787 }1788 1789 function atKeyframesAction(token)1790 {1791 this.cursor += token.length;1792 this.newLine.appendChild(this.createSpan(token, "webkit-css-at-rule"));1793 this.lexState = this.LexState.AtKeyframes;1794 }1795 1796 function startAtKeyframesBlockAction(token)1797 {1798 this.cursor += token.length;1799 this.nonToken += token;1800 this.lexState = this.LexState.Initial;1801 }1802 1803 function atRuleAction(token) {1804 this.cursor += token.length;1805 this.newLine.appendChild(this.createSpan(token, "webkit-css-at-rule"));1806 this.lexState = this.LexState.AtRule;1807 }1808 1809 function endAtRuleAction(token) {1810 this.cursor += token.length;1811 this.nonToken += token;1812 this.lexState = this.LexState.Initial;1813 }1814 1815 function startAtRuleBlockAction(token)1816 {1817 this.cursor += token.length;1818 this.nonToken += token;1819 this.lexState = this.LexState.DeclarationProperty;1820 }1821 1822 const mediaTypes = ["all", "aural", "braille", "embossed", "handheld", "print", "projection", "screen", "tty", "tv"];1823 function atRuleIdentAction(token) {1824 this.cursor += token.length;1825 if (mediaTypes.indexOf(token) === -1)1826 this.nonToken += token;1827 else {1828 this.appendNonToken.call(this);1829 this.newLine.appendChild(this.createSpan(token, "webkit-css-keyword"));1830 }1831 }1832 }1833 1834 WebInspector.CSSSourceSyntaxHighlighter.prototype.__proto__ = WebInspector.SourceSyntaxHighlighter.prototype;1835 1836 WebInspector.JavaScriptSourceSyntaxHighlighter = function(table, sourceFrame) {1837 WebInspector.SourceSyntaxHighlighter.call(this, table, sourceFrame);1838 1839 this.LexState = {1840 Initial: 1,1841 DivisionAllowed: 2,1842 };1843 this.ContinueState = {1844 None: 0,1845 Comment: 1,1846 SingleQuoteString: 2,1847 DoubleQuoteString: 3,1848 RegExp: 41849 };1850 1851 this.nonToken = "";1852 this.cursor = 0;1853 this.lineIndex = -1;1854 this.lineCode = "";1855 this.newLine = null;1856 this.lexState = this.LexState.Initial;1857 this.continueState = this.ContinueState.None;1858 1859 this.rules = [{1860 pattern: /^(?:\/\/.*)/,1861 action: singleLineCommentAction1862 }, {1863 pattern: /^(?:\/\*(?:[^\*]|\*[^\/])*\*+\/)/,1864 action: multiLineSingleLineCommentAction1865 }, {1866 pattern: /^(?:\/\*(?:[^\*]|\*[^\/])*)/,1867 action: multiLineCommentStartAction1868 }, {1869 pattern: /^(?:(?:[^\*]|\*[^\/])*\*+\/)/,1870 action: multiLineCommentEndAction,1871 continueStateCondition: this.ContinueState.Comment1872 }, {1873 pattern: /^.*/,1874 action: multiLineCommentMiddleAction,1875 continueStateCondition: this.ContinueState.Comment1876 }, {1877 pattern: /^(?:(?:0|[1-9]\d*)\.\d+?(?:[eE](?:\d+|\+\d+|-\d+))?|\.\d+(?:[eE](?:\d+|\+\d+|-\d+))?|(?:0|[1-9]\d*)(?:[eE](?:\d+|\+\d+|-\d+))?|0x[0-9a-fA-F]+|0X[0-9a-fA-F]+)/,1878 action: numericLiteralAction1879 }, {1880 pattern: /^(?:"(?:[^"\\]|\\(?:['"\bfnrtv]|[^'"\bfnrtv0-9xu]|0|x[0-9a-fA-F][0-9a-fA-F]|(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])))*"|'(?:[^'\\]|\\(?:['"\bfnrtv]|[^'"\bfnrtv0-9xu]|0|x[0-9a-fA-F][0-9a-fA-F]|(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])))*')/,1881 action: stringLiteralAction1882 }, {1883 pattern: /^(?:'(?:[^'\\]|\\(?:['"\bfnrtv]|[^'"\bfnrtv0-9xu]|0|x[0-9a-fA-F][0-9a-fA-F]|(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])))*)\\$/,1884 action: singleQuoteStringStartAction1885 }, {1886 pattern: /^(?:(?:[^'\\]|\\(?:['"\bfnrtv]|[^'"\bfnrtv0-9xu]|0|x[0-9a-fA-F][0-9a-fA-F]|(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])))*')/,1887 action: singleQuoteStringEndAction,1888 continueStateCondition: this.ContinueState.SingleQuoteString1889 }, {1890 pattern: /^(?:(?:[^'\\]|\\(?:['"\bfnrtv]|[^'"\bfnrtv0-9xu]|0|x[0-9a-fA-F][0-9a-fA-F]|(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])))*)\\$/,1891 action: singleQuoteStringMiddleAction,1892 continueStateCondition: this.ContinueState.SingleQuoteString1893 }, {1894 pattern: /^(?:"(?:[^"\\]|\\(?:['"\bfnrtv]|[^'"\bfnrtv0-9xu]|0|x[0-9a-fA-F][0-9a-fA-F]|(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])))*)\\$/,1895 action: doubleQuoteStringStartAction1896 }, {1897 pattern: /^(?:(?:[^"\\]|\\(?:['"\bfnrtv]|[^'"\bfnrtv0-9xu]|0|x[0-9a-fA-F][0-9a-fA-F]|(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])))*")/,1898 action: doubleQuoteStringEndAction,1899 continueStateCondition: this.ContinueState.DoubleQuoteString1900 }, {1901 pattern: /^(?:(?:[^"\\]|\\(?:['"\bfnrtv]|[^'"\bfnrtv0-9xu]|0|x[0-9a-fA-F][0-9a-fA-F]|(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])))*)\\$/,1902 action: doubleQuoteStringMiddleAction,1903 continueStateCondition: this.ContinueState.DoubleQuoteString1904 }, {1905 pattern: /^(?:(?:[a-zA-Z]|[$_]|\\(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]))(?:(?:[a-zA-Z]|[$_]|\\(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]))|[0-9])*)/,1906 action: identOrKeywordAction1907 }, {1908 pattern: /^\)/,1909 action: rightParenAction,1910 dontAppendNonToken: true1911 }, {1912 pattern: /^(?:<=|>=|===|==|!=|!==|\+\+|\-\-|<<|>>|>>>|&&|\|\||\+=|\-=|\*=|%=|<<=|>>=|>>>=|&=|\|=|^=|[{}\(\[\]\.;,<>\+\-\*%&\|\^!~\?:=])/,1913 action: punctuatorAction,1914 dontAppendNonToken: true1915 }, {1916 pattern: /^(?:\/=?)/,1917 action: divPunctuatorAction,1918 lexStateCondition: this.LexState.DivisionAllowed,1919 dontAppendNonToken: true1920 }, {1921 pattern: /^(?:\/(?:(?:\\.)|[^\\*\/])(?:(?:\\.)|[^\\/])*\/(?:(?:[a-zA-Z]|[$_]|\\(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]))|[0-9])*)/,1922 action: regExpLiteralAction1923 }, {1924 pattern: /^(?:\/(?:(?:\\.)|[^\\*\/])(?:(?:\\.)|[^\\/])*)\\$/,1925 action: regExpStartAction1926 }, {1927 pattern: /^(?:(?:(?:\\.)|[^\\/])*\/(?:(?:[a-zA-Z]|[$_]|\\(?:u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]))|[0-9])*)/,1928 action: regExpEndAction,1929 continueStateCondition: this.ContinueState.RegExp1930 }, {1931 pattern: /^(?:(?:(?:\\.)|[^\\/])*)\\$/,1932 action: regExpMiddleAction,1933 continueStateCondition: this.ContinueState.RegExp1934 }];1935 1936 function singleLineCommentAction(token)1937 {1938 this.cursor += token.length;1939 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-comment"));1940 }1941 1942 function multiLineSingleLineCommentAction(token)1943 {1944 this.cursor += token.length;1945 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-comment"));1946 }1947 1948 function multiLineCommentStartAction(token)1949 {1950 this.cursor += token.length;1951 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-comment"));1952 this.continueState = this.ContinueState.Comment;1953 }1954 1955 function multiLineCommentEndAction(token)1956 {1957 this.cursor += token.length;1958 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-comment"));1959 this.continueState = this.ContinueState.None;1960 }1961 1962 function multiLineCommentMiddleAction(token)1963 {1964 this.cursor += token.length;1965 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-comment"));1966 }1967 1968 function numericLiteralAction(token)1969 {1970 this.cursor += token.length;1971 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-number"));1972 this.lexState = this.LexState.DivisionAllowed;1973 }1974 1975 function stringLiteralAction(token)1976 {1977 this.cursor += token.length;1978 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-string"));1979 this.lexState = this.LexState.Initial;1980 }1981 1982 function singleQuoteStringStartAction(token)1983 {1984 this.cursor += token.length;1985 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-string"));1986 this.continueState = this.ContinueState.SingleQuoteString;1987 }1988 1989 function singleQuoteStringEndAction(token)1990 {1991 this.cursor += token.length;1992 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-string"));1993 this.continueState = this.ContinueState.None;1994 }1995 1996 function singleQuoteStringMiddleAction(token)1997 {1998 this.cursor += token.length;1999 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-string"));2000 }2001 2002 function doubleQuoteStringStartAction(token)2003 {2004 this.cursor += token.length;2005 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-string"));2006 this.continueState = this.ContinueState.DoubleQuoteString;2007 }2008 2009 function doubleQuoteStringEndAction(token)2010 {2011 this.cursor += token.length;2012 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-string"));2013 this.continueState = this.ContinueState.None;2014 }2015 2016 function doubleQuoteStringMiddleAction(token)2017 {2018 this.cursor += token.length;2019 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-string"));2020 }2021 2022 function regExpLiteralAction(token)2023 {2024 this.cursor += token.length;2025 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-regexp"));2026 this.lexState = this.LexState.Initial;2027 }2028 2029 function regExpStartAction(token)2030 {2031 this.cursor += token.length;2032 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-regexp"));2033 this.continueState = this.ContinueState.RegExp;2034 }2035 2036 function regExpEndAction(token)2037 {2038 this.cursor += token.length;2039 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-regexp"));2040 this.continueState = this.ContinueState.None;2041 }2042 2043 function regExpMiddleAction(token)2044 {2045 this.cursor += token.length;2046 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-regexp"));2047 }2048 2049 const keywords = {2050 "null": true,2051 "true": true,2052 "false": true,2053 "break": true,2054 "case": true,2055 "catch": true,2056 "const": true,2057 "default": true,2058 "finally": true,2059 "for": true,2060 "instanceof": true,2061 "new": true,2062 "var": true,2063 "continue": true,2064 "function": true,2065 "return": true,2066 "void": true,2067 "delete": true,2068 "if": true,2069 "this": true,2070 "do": true,2071 "while": true,2072 "else": true,2073 "in": true,2074 "switch": true,2075 "throw": true,2076 "try": true,2077 "typeof": true,2078 "debugger": true,2079 "class": true,2080 "enum": true,2081 "export": true,2082 "extends": true,2083 "import": true,2084 "super": true,2085 "get": true,2086 "set": true2087 };2088 function identOrKeywordAction(token)2089 {2090 this.cursor += token.length;2091 2092 if (token in keywords) {2093 this.newLine.appendChild(this.createSpan(token, "webkit-javascript-keyword"));2094 this.lexState = this.LexState.Initial;2095 } else {2096 var identElement = this.createSpan(token, "webkit-javascript-ident");2097 identElement.addEventListener("mouseover", showDatatip, false);2098 this.newLine.appendChild(identElement);2099 this.lexState = this.LexState.DivisionAllowed;2100 }2101 }2102 2103 function showDatatip(event) {2104 if (!WebInspector.panels.scripts || !WebInspector.panels.scripts.paused)2105 return;2106 2107 var node = event.target;2108 var parts = [node.textContent];2109 while (node.previousSibling && node.previousSibling.textContent === ".") {2110 node = node.previousSibling.previousSibling;2111 if (!node || !node.hasStyleClass("webkit-javascript-ident"))2112 break;2113 parts.unshift(node.textContent);2114 }2115 2116 var expression = parts.join(".");2117 2118 WebInspector.panels.scripts.evaluateInSelectedCallFrame(expression, false, "console", callback);2119 function callback(result, exception)2120 {2121 if (exception)2122 return;2123 event.target.setAttribute("title", result.description);2124 event.target.addEventListener("mouseout", onmouseout, false);2125 2126 function onmouseout(event)2127 {2128 event.target.removeAttribute("title");2129 event.target.removeEventListener("mouseout", onmouseout, false);2130 }2131 }2132 }2133 2134 function divPunctuatorAction(token)2135 {2136 this.cursor += token.length;2137 this.nonToken += token;2138 this.lexState = this.LexState.Initial;2139 }2140 2141 function rightParenAction(token)2142 {2143 this.cursor += token.length;2144 this.nonToken += token;2145 this.lexState = this.LexState.DivisionAllowed;2146 }2147 2148 function punctuatorAction(token)2149 {2150 this.cursor += token.length;2151 this.nonToken += token;2152 this.lexState = this.LexState.Initial;2153 }2154 }2155 2156 WebInspector.JavaScriptSourceSyntaxHighlighter.prototype.__proto__ = WebInspector.SourceSyntaxHighlighter.prototype; -
trunk/WebCore/inspector/front-end/WebKit.qrc
r52170 r52439 14 14 <file>ContextMenu.js</file> 15 15 <file>CookieItemsView.js</file> 16 <file>CSSSourceSyntaxHighlighter.js</file> 16 17 <file>Database.js</file> 17 18 <file>DatabaseQueryView.js</file> … … 32 33 <file>InspectorBackendStub.js</file> 33 34 <file>InspectorFrontendHostStub.js</file> 35 <file>JavaScriptSourceSyntaxHighlighter.js</file> 34 36 <file>KeyboardShortcut.js</file> 35 37 <file>MetricsSidebarPane.js</file> … … 58 60 <file>SidebarTreeElement.js</file> 59 61 <file>SourceFrame.js</file> 62 <file>SourceSyntaxHighlighter.js</file> 60 63 <file>SourceView.js</file> 61 64 <file>StatusBarButton.js</file> -
trunk/WebCore/inspector/front-end/inspector.html
r52149 r52439 87 87 <script type="text/javascript" src="ResourceView.js"></script> 88 88 <script type="text/javascript" src="SourceFrame.js"></script> 89 <script type="text/javascript" src="SourceSyntaxHighlighter.js"></script> 90 <script type="text/javascript" src="CSSSourceSyntaxHighlighter.js"></script> 91 <script type="text/javascript" src="JavaScriptSourceSyntaxHighlighter.js"></script> 89 92 <script type="text/javascript" src="SourceView.js"></script> 90 93 <script type="text/javascript" src="FontView.js"></script>
Note:
See TracChangeset
for help on using the changeset viewer.