Update to 8.0
This commit is contained in:
@@ -3,7 +3,7 @@ Language: Perl
|
||||
Author: Peter Leonov <gojpeg@yandex.ru>
|
||||
*/
|
||||
|
||||
hljs.LANGUAGES['perl'] = function(hljs) {
|
||||
function(hljs) {
|
||||
var PERL_KEYWORDS = 'getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ' +
|
||||
'ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime ' +
|
||||
'readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq' +
|
||||
@@ -22,36 +22,32 @@ hljs.LANGUAGES['perl'] = function(hljs) {
|
||||
'chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach ' +
|
||||
'tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir' +
|
||||
'ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe ' +
|
||||
'atan2 getgrent exp time push setgrent gt lt or ne m|0';
|
||||
'atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when';
|
||||
var SUBST = {
|
||||
className: 'subst',
|
||||
begin: '[$@]\\{', end: '\\}',
|
||||
keywords: PERL_KEYWORDS,
|
||||
relevance: 10
|
||||
keywords: PERL_KEYWORDS
|
||||
};
|
||||
var VAR1 = {
|
||||
className: 'variable',
|
||||
begin: '\\$\\d'
|
||||
};
|
||||
var VAR2 = {
|
||||
className: 'variable',
|
||||
begin: '[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)'
|
||||
};
|
||||
var STRING_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST, VAR1, VAR2];
|
||||
var METHOD = {
|
||||
begin: '->',
|
||||
contains: [
|
||||
{begin: hljs.IDENT_RE},
|
||||
{begin: '{', end: '}'}
|
||||
begin: '->{', end: '}'
|
||||
// contains defined later
|
||||
};
|
||||
var VAR = {
|
||||
className: 'variable',
|
||||
variants: [
|
||||
{begin: /\$\d/},
|
||||
{begin: /[\$\%\@](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},
|
||||
{begin: /[\$\%\@][^\s\w{]/, relevance: 0}
|
||||
]
|
||||
};
|
||||
var COMMENT = {
|
||||
className: 'comment',
|
||||
begin: '^(__END__|__DATA__)', end: '\\n$',
|
||||
relevance: 5
|
||||
}
|
||||
};
|
||||
var STRING_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST, VAR];
|
||||
var PERL_DEFAULT_CONTAINS = [
|
||||
VAR1, VAR2,
|
||||
VAR,
|
||||
hljs.HASH_COMMENT_MODE,
|
||||
COMMENT,
|
||||
{
|
||||
@@ -61,66 +57,54 @@ hljs.LANGUAGES['perl'] = function(hljs) {
|
||||
METHOD,
|
||||
{
|
||||
className: 'string',
|
||||
begin: 'q[qwxr]?\\s*\\(', end: '\\)',
|
||||
contains: STRING_CONTAINS,
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: 'q[qwxr]?\\s*\\[', end: '\\]',
|
||||
contains: STRING_CONTAINS,
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: 'q[qwxr]?\\s*\\{', end: '\\}',
|
||||
contains: STRING_CONTAINS,
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: 'q[qwxr]?\\s*\\|', end: '\\|',
|
||||
contains: STRING_CONTAINS,
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: 'q[qwxr]?\\s*\\<', end: '\\>',
|
||||
contains: STRING_CONTAINS,
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: 'qw\\s+q', end: 'q',
|
||||
contains: STRING_CONTAINS,
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: '\'', end: '\'',
|
||||
contains: [hljs.BACKSLASH_ESCAPE],
|
||||
relevance: 0
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: '"', end: '"',
|
||||
contains: STRING_CONTAINS,
|
||||
relevance: 0
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: '`', end: '`',
|
||||
contains: [hljs.BACKSLASH_ESCAPE]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: '{\\w+}',
|
||||
relevance: 0
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: '\-?\\w+\\s*\\=\\>',
|
||||
relevance: 0
|
||||
variants: [
|
||||
{
|
||||
begin: 'q[qwxr]?\\s*\\(', end: '\\)',
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
begin: 'q[qwxr]?\\s*\\[', end: '\\]',
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
begin: 'q[qwxr]?\\s*\\{', end: '\\}',
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
begin: 'q[qwxr]?\\s*\\|', end: '\\|',
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
begin: 'q[qwxr]?\\s*\\<', end: '\\>',
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
begin: 'qw\\s+q', end: 'q',
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
begin: '\'', end: '\'',
|
||||
contains: [hljs.BACKSLASH_ESCAPE]
|
||||
},
|
||||
{
|
||||
begin: '"', end: '"'
|
||||
},
|
||||
{
|
||||
begin: '`', end: '`',
|
||||
contains: [hljs.BACKSLASH_ESCAPE]
|
||||
},
|
||||
{
|
||||
begin: '{\\w+}',
|
||||
contains: [],
|
||||
relevance: 0
|
||||
},
|
||||
{
|
||||
begin: '\-?\\w+\\s*\\=\\>',
|
||||
contains: [],
|
||||
relevance: 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
className: 'number',
|
||||
@@ -128,7 +112,7 @@ hljs.LANGUAGES['perl'] = function(hljs) {
|
||||
relevance: 0
|
||||
},
|
||||
{ // regexp container
|
||||
begin: '(' + hljs.RE_STARTERS_RE + '|\\b(split|return|print|reverse|grep)\\b)\\s*',
|
||||
begin: '(\\/\\/|' + hljs.RE_STARTERS_RE + '|\\b(split|return|print|reverse|grep)\\b)\\s*',
|
||||
keywords: 'split return print reverse grep',
|
||||
relevance: 0,
|
||||
contains: [
|
||||
@@ -149,8 +133,7 @@ hljs.LANGUAGES['perl'] = function(hljs) {
|
||||
},
|
||||
{
|
||||
className: 'sub',
|
||||
beginWithKeyword: true, end: '(\\s*\\(.*?\\))?[;{]',
|
||||
keywords: 'sub',
|
||||
beginKeywords: 'sub', end: '(\\s*\\(.*?\\))?[;{]',
|
||||
relevance: 5
|
||||
},
|
||||
{
|
||||
@@ -160,12 +143,11 @@ hljs.LANGUAGES['perl'] = function(hljs) {
|
||||
}
|
||||
];
|
||||
SUBST.contains = PERL_DEFAULT_CONTAINS;
|
||||
METHOD.contains[1].contains = PERL_DEFAULT_CONTAINS;
|
||||
METHOD.contains = PERL_DEFAULT_CONTAINS;
|
||||
|
||||
return {
|
||||
defaultMode: {
|
||||
keywords: PERL_KEYWORDS,
|
||||
contains: PERL_DEFAULT_CONTAINS
|
||||
}
|
||||
aliases: ['pl'],
|
||||
keywords: PERL_KEYWORDS,
|
||||
contains: PERL_DEFAULT_CONTAINS
|
||||
};
|
||||
}(hljs);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user