MCPcopy Create free account
hub / github.com/sql-js/sql.js / compileModes

Function compileModes

documentation/javascript/application.js:300–358  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

298 /* Initialization */
299
300 function compileModes() {
301
302 function compileMode(mode, language, is_default) {
303 if (mode.compiled)
304 return;
305 var group;
306
307 if (!is_default) {
308 mode.beginRe = langRe(language, mode.begin ? mode.begin : '\\B|\\b');
309 if (!mode.end && !mode.endsWithParent)
310 mode.end = '\\B|\\b';
311 if (mode.end)
312 mode.endRe = langRe(language, mode.end);
313 }
314 if (mode.illegal)
315 mode.illegalRe = langRe(language, mode.illegal);
316 if (mode.relevance === undefined)
317 mode.relevance = 1;
318 if (mode.keywords) {
319 mode.lexemsRe = langRe(language, mode.lexems || hljs.IDENT_RE, true);
320 for (var className in mode.keywords) {
321 if (!mode.keywords.hasOwnProperty(className))
322 continue;
323 if (mode.keywords[className] instanceof Object) {
324 group = mode.keywords[className];
325 } else {
326 group = mode.keywords;
327 className = 'keyword';
328 }
329 for (var keyword in group) {
330 if (!group.hasOwnProperty(keyword))
331 continue;
332 mode.keywords[keyword] = [className, group[keyword]];
333 }
334 }
335 }
336 if (!mode.contains) {
337 mode.contains = [];
338 }
339 // compiled flag is set before compiling submodes to avoid self-recursion
340 // (see lisp where quoted_list contains quoted_list)
341 mode.compiled = true;
342 for (var i = 0; i < mode.contains.length; i++) {
343 if (mode.contains[i] == 'self') {
344 mode.contains[i] = mode;
345 }
346 compileMode(mode.contains[i], language, false);
347 }
348 if (mode.starts) {
349 compileMode(mode.starts, language, false);
350 }
351 }
352
353 for (var i in languages) {
354 if (!languages.hasOwnProperty(i))
355 continue;
356 compileMode(languages[i].defaultMode, languages[i], true);
357 }

Callers 1

highlightFunction · 0.85

Calls 1

compileModeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…