MCPcopy Index your code
hub / github.com/documentcloud/visualsearch / processModeInfo

Function processModeInfo

docs/assets/highlight.js:280–321  ·  view source on GitHub ↗
(buffer, lexem, end)

Source from the content-addressed store, hash-verified

278 }
279
280 function processModeInfo(buffer, lexem, end) {
281 var current_mode = modes[modes.length - 1];
282 if (end) {
283 result += processBuffer(current_mode.buffer + buffer, current_mode);
284 return false;
285 }
286
287 var new_mode = subMode(lexem, current_mode);
288 if (new_mode) {
289 result += processBuffer(current_mode.buffer + buffer, current_mode);
290 startNewMode(new_mode, lexem);
291 return new_mode.returnBegin;
292 }
293
294 var end_level = endOfMode(modes.length - 1, lexem);
295 if (end_level) {
296 var markup = current_mode.className?'</span>':'';
297 if (current_mode.returnEnd) {
298 result += processBuffer(current_mode.buffer + buffer, current_mode) + markup;
299 } else if (current_mode.excludeEnd) {
300 result += processBuffer(current_mode.buffer + buffer, current_mode) + markup + escape(lexem);
301 } else {
302 result += processBuffer(current_mode.buffer + buffer + lexem, current_mode) + markup;
303 }
304 while (end_level > 1) {
305 markup = modes[modes.length - 2].className?'</span>':'';
306 result += markup;
307 end_level--;
308 modes.length--;
309 }
310 var last_ended_mode = modes[modes.length - 1];
311 modes.length--;
312 modes[modes.length - 1].buffer = '';
313 if (last_ended_mode.starts) {
314 startNewMode(last_ended_mode.starts, '');
315 }
316 return current_mode.returnEnd;
317 }
318
319 if (isIllegal(lexem, current_mode))
320 throw 'Illegal';
321 }
322
323 var language = languages[language_name];
324 var modes = [language.defaultMode];

Callers 1

highlightFunction · 0.85

Calls 6

processBufferFunction · 0.85
subModeFunction · 0.85
startNewModeFunction · 0.85
endOfModeFunction · 0.85
isIllegalFunction · 0.85
escapeFunction · 0.70

Tested by

no test coverage detected