highlight-ts
Version:
Highlight.JS in TypeScript (and ES6).
106 lines • 3.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
// Common regexps
exports.IDENT_RE = '[a-zA-Z]\\w*';
exports.UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*';
exports.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
exports.C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float
exports.BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b...
exports.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
// Common modes
exports.BACKSLASH_ESCAPE = {
begin: '\\\\[\\s\\S]',
relevance: 0
};
exports.APOS_STRING_MODE = {
className: 'string',
begin: '\'', end: '\'',
illegal: '\\n',
contains: [exports.BACKSLASH_ESCAPE]
};
exports.QUOTE_STRING_MODE = {
className: 'string',
begin: '"', end: '"',
illegal: '\\n',
contains: [exports.BACKSLASH_ESCAPE]
};
exports.PHRASAL_WORDS_MODE = {
begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
};
function COMMENT(begin, end, inherits) {
if (inherits === void 0) { inherits = {}; }
var mode = tslib_1.__assign({ className: 'comment', begin: begin, end: end, contains: [] }, inherits);
var contains = mode.contains;
if (contains) {
contains.push(exports.PHRASAL_WORDS_MODE);
contains.push({
className: 'doctag',
begin: '(?:TODO|FIXME|NOTE|BUG|XXX):',
relevance: 0
});
}
return mode;
}
exports.COMMENT = COMMENT;
;
exports.C_LINE_COMMENT_MODE = COMMENT('//', '$');
exports.C_BLOCK_COMMENT_MODE = COMMENT('/\\*', '\\*/');
exports.HASH_COMMENT_MODE = COMMENT('#', '$');
exports.NUMBER_MODE = {
className: 'number',
begin: exports.NUMBER_RE,
relevance: 0
};
exports.C_NUMBER_MODE = {
className: 'number',
begin: exports.C_NUMBER_RE,
relevance: 0
};
exports.BINARY_NUMBER_MODE = {
className: 'number',
begin: exports.BINARY_NUMBER_RE,
relevance: 0
};
exports.CSS_NUMBER_MODE = {
className: 'number',
begin: exports.NUMBER_RE + '(' +
'%|em|ex|ch|rem' +
'|vw|vh|vmin|vmax' +
'|cm|mm|in|pt|pc|px' +
'|deg|grad|rad|turn' +
'|s|ms' +
'|Hz|kHz' +
'|dpi|dpcm|dppx' +
')?',
relevance: 0
};
exports.REGEXP_MODE = {
className: 'regexp',
begin: /\//, end: /\/[gimuy]*/,
illegal: /\n/,
contains: [
exports.BACKSLASH_ESCAPE,
{
begin: /\[/, end: /\]/,
relevance: 0,
contains: [exports.BACKSLASH_ESCAPE]
}
]
};
exports.TITLE_MODE = {
className: 'title',
begin: exports.IDENT_RE,
relevance: 0
};
exports.UNDERSCORE_TITLE_MODE = {
className: 'title',
begin: exports.UNDERSCORE_IDENT_RE,
relevance: 0
};
exports.METHOD_GUARD = {
// excludes method names from keyword processing
begin: '\\.\\s*' + exports.UNDERSCORE_IDENT_RE,
relevance: 0
};
//# sourceMappingURL=common.js.map