site-tpe/EnlighterJS/Source/Language/Javascript.js
2025-05-16 18:49:08 +02:00

78 lines
2.2 KiB
JavaScript

/*
---
description: JavaScript language
license: MIT-style
authors:
- Jose Prado
requires:
- Core/1.4.5
provides: [EnlighterJS.Language.javascript]
...
*/
EJS.Language.javascript = new Class({
Extends: EJS.Language.generic,
setupLanguage: function()
{
this.keywords = {
commonKeywords: {
csv: "as, break, case, catch, continue, delete, do, else, eval, finally, for, if, in, is, instanceof, return, switch, this, throw, try, typeof, void, while, write, with",
alias: 'kw1'
},
langKeywords: {
csv: "class, const, default, debugger, export, extends, false, function, import, namespace, new, null, package, private, protected, public, super, true, use, var",
alias: 'kw2'
},
windowKeywords: {
csv: "alert, confirm, open, print, prompt",
alias: 'kw3'
}
};
this.patterns = {
'slashComments': {
pattern: this.common.slashComments,
alias: 'co1'
},
'multiComments': {
pattern: this.common.multiComments,
alias: 'co2'
},
'strings': {
pattern: this.common.strings,
alias: 'st0'
},
'methodCalls': {
pattern: this.common.properties,
alias: 'me0'
},
'brackets': {
pattern: this.common.brackets,
alias: 'br0'
},
'numbers': {
pattern: /\b((([0-9]+)?\.)?[0-9_]+([e][-+]?[0-9]+)?|0x[A-F0-9]+)\b/gi,
alias: 'nu0'
},
'regex': {
pattern: this.delimToRegExp("/", "\\", "/", "g", "[gimy]*"),
alias: 're0'
},
'symbols': {
pattern: /\+|-|\*|\/|%|!|@|&|\||\^|\<|\>|=|,|\.|;|\?|:/g,
alias: 'sy0'
}
};
this.delimiters = {
start: this.strictRegExp('<script type="text/javascript">', '<script language="javascript">'),
end: this.strictRegExp('<\/script>')
};
}
});