Changeset 12126
- Timestamp:
- 01/22/08 10:29:22 (6 months ago)
- Location:
- dojox/trunk/highlight
- Files:
-
- 2 modified
-
tests/test_highlight.html (modified) (1 diff)
-
_base.js (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dojox/trunk/highlight/tests/test_highlight.html
r12045 r12126 32 32 </style> 33 33 34 <script type="text/javascript" djConfig="parseOnLoad: true, isDebug:true" src="../../../dojo/dojo.js"></script>34 <script type="text/javascript" djConfig="parseOnLoad: true, isDebug: true" src="../../../dojo/dojo.js"></script> 35 35 <script type="text/javascript" src="../_base.js"></script> 36 36 <script type="text/javascript" src="../languages/cpp.js"></script> -
dojox/trunk/highlight/_base.js
r12078 r12126 92 92 mode.keywordGroups = mode.keywords; 93 93 }else{ 94 mode.keywordGroups = { keyword: mode.keywords};94 mode.keywordGroups = {keyword: mode.keywords}; 95 95 } 96 96 break; … … 102 102 if(lang.defaultMode && lang.modes){ 103 103 buildKeywordGroups(lang.defaultMode); 104 for(var key in lang.modes){ 105 buildKeywordGroups(lang.modes[key]); 106 } 104 dojo.forEach(lang.modes, buildKeywordGroups); 107 105 } 108 106 } … … 142 140 dojo.extend(Highlighter, { 143 141 buildRes: function(){ 144 for(var key in this.lang.modes){ 145 var mode = this.lang.modes[key]; 142 dojo.forEach(this.lang.modes, function(mode){ 146 143 if(mode.begin){ 147 144 mode.beginRe = this.langRe('^' + mode.begin); … … 153 150 mode.illegalRe = this.langRe('^(?:' + mode.illegal + ')'); 154 151 } 155 } 152 }, this); 156 153 this.lang.defaultMode.illegalRe = this.langRe('^(?:' + this.lang.defaultMode.illegal + ')'); 157 154 }, … … 160 157 var classes = this.modes[this.modes.length - 1].contains; 161 158 if(classes){ 162 for(var i in classes){ 159 var modes = this.lang.modes; 160 for(var i = 0; i < classes.length; ++i){ 163 161 var className = classes[i]; 164 for(var key in this.lang.modes){ 165 var mode = this.lang.modes[key]; 166 if(mode.className == className && mode.beginRe.test(lexeme)){ 167 return mode; 168 } 162 for(var j = 0; j < modes.length; ++j){ 163 var mode = modes[j]; 164 if(mode.className == className && mode.beginRe.test(lexeme)){ return mode; } 169 165 } 170 166 } … … 197 193 terminators = {}; 198 194 if(mode.contains){ 199 for(var key in this.lang.modes){ 200 var lmode = this.lang.modes[key]; 201 if(dojo.indexOf(mode.contains, lmode.className) >= 0 && !(lmode.begin in terminators)){ 195 dojo.forEach(this.lang.modes, function(lmode){ 196 if(dojo.indexOf(mode.contains, lmode.className) >= 0){ 202 197 terminators[lmode.begin] = 1; 203 198 } 204 } 199 }); 205 200 } 206 201 for(var i = this.modes.length - 1; i >= 0; --i){ … … 367 362 textBlock = blockText(block); 368 363 for(var key in dh.languages){ 369 if( key.charAt(0) == "_"){ continue; } // skip internal members364 if(!dh.languages[key].defaultMode){ continue; } // skip internal members 370 365 var highlight = new Highlighter(key, textBlock), 371 366 relevance = highlight.keywordCount + highlight.relevance;