85 lines
2.1 KiB
JavaScript
85 lines
2.1 KiB
JavaScript
/*
|
||
Language: Python
|
||
*/
|
||
|
||
hljs.LANGUAGES['python'] = function(hljs) {
|
||
var STRINGS = [
|
||
{
|
||
className: 'string',
|
||
begin: '(u|b)?r?\'\'\'', end: '\'\'\'',
|
||
relevance: 10
|
||
},
|
||
{
|
||
className: 'string',
|
||
begin: '(u|b)?r?"""', end: '"""',
|
||
relevance: 10
|
||
},
|
||
{
|
||
className: 'string',
|
||
begin: '(u|r|ur)\'', end: '\'',
|
||
contains: [hljs.BACKSLASH_ESCAPE],
|
||
relevance: 10
|
||
},
|
||
{
|
||
className: 'string',
|
||
begin: '(u|r|ur)"', end: '"',
|
||
contains: [hljs.BACKSLASH_ESCAPE],
|
||
relevance: 10
|
||
},
|
||
{
|
||
className: 'string',
|
||
begin: '(b|br)\'', end: '\'',
|
||
contains: [hljs.BACKSLASH_ESCAPE]
|
||
},
|
||
{
|
||
className: 'string',
|
||
begin: '(b|br)"', end: '"',
|
||
contains: [hljs.BACKSLASH_ESCAPE]
|
||
}
|
||
].concat([
|
||
hljs.APOS_STRING_MODE,
|
||
hljs.QUOTE_STRING_MODE
|
||
]);
|
||
var TITLE = {
|
||
className: 'title', begin: hljs.UNDERSCORE_IDENT_RE
|
||
};
|
||
var PARAMS = {
|
||
className: 'params',
|
||
begin: '\\(', end: '\\)',
|
||
contains: ['self', hljs.C_NUMBER_MODE].concat(STRINGS)
|
||
};
|
||
var FUNC_CLASS_PROTO = {
|
||
beginWithKeyword: true, end: ':',
|
||
illegal: '[${=;\\n]',
|
||
contains: [TITLE, PARAMS],
|
||
relevance: 10
|
||
};
|
||
|
||
return {
|
||
defaultMode: {
|
||
keywords: {
|
||
keyword:
|
||
'and elif is global as in if from raise for except finally print import pass return ' +
|
||
'exec else break not with class assert yield try while continue del or def lambda ' +
|
||
'nonlocal|10',
|
||
built_in:
|
||
'None True False Ellipsis NotImplemented'
|
||
},
|
||
illegal: '(</|->|\\?)',
|
||
contains: STRINGS.concat([
|
||
hljs.HASH_COMMENT_MODE,
|
||
hljs.inherit(FUNC_CLASS_PROTO, {className: 'function', keywords: 'def'}),
|
||
hljs.inherit(FUNC_CLASS_PROTO, {className: 'class', keywords: 'class'}),
|
||
hljs.C_NUMBER_MODE,
|
||
{
|
||
className: 'decorator',
|
||
begin: '@', end: '$'
|
||
},
|
||
{
|
||
begin: '\\b(print|exec)\\(' // don’t highlight keywords-turned-functions in Python 3
|
||
}
|
||
])
|
||
}
|
||
};
|
||
}(hljs);
|