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

Function compileMode

docs/assets/highlight.js:365–403  ·  view source on GitHub ↗
(mode, language, is_default)

Source from the content-addressed store, hash-verified

363 function compileModes() {
364
365 function compileMode(mode, language, is_default) {
366 if (mode.compiled)
367 return;
368
369 if (!is_default) {
370 mode.beginRe = langRe(language, mode.begin ? mode.begin : '\\B|\\b');
371 if (!mode.end && !mode.endsWithParent)
372 mode.end = '\\B|\\b'
373 if (mode.end)
374 mode.endRe = langRe(language, mode.end);
375 }
376 if (mode.illegal)
377 mode.illegalRe = langRe(language, mode.illegal);
378 if (mode.relevance == undefined)
379 mode.relevance = 1;
380 if (mode.keywords)
381 mode.lexemsRe = langRe(language, mode.lexems || hljs.IDENT_RE, true);
382 for (var key in mode.keywords) {
383 if (!mode.keywords.hasOwnProperty(key))
384 continue;
385 if (mode.keywords[key] instanceof Object)
386 mode.keywordGroups = mode.keywords;
387 else
388 mode.keywordGroups = {'keyword': mode.keywords};
389 break;
390 }
391 if (!mode.contains) {
392 mode.contains = [];
393 }
394 // compiled flag is set before compiling submodes to avoid self-recursion
395 // (see lisp where quoted_list contains quoted_list)
396 mode.compiled = true;
397 for (var i = 0; i < mode.contains.length; i++) {
398 compileMode(mode.contains[i], language, false);
399 }
400 if (mode.starts) {
401 compileMode(mode.starts, language, false);
402 }
403 }
404
405 for (var i in languages) {
406 if (!languages.hasOwnProperty(i))

Callers 1

compileModesFunction · 0.85

Calls 1

langReFunction · 0.85

Tested by

no test coverage detected