Update hlJS custom modules
This commit is contained in:
parent
e70631477c
commit
b113af17c3
|
@ -0,0 +1,717 @@
|
|||
(() => {
|
||||
const $lang = (() => {
|
||||
'use strict';
|
||||
return () => {
|
||||
const $COMMAND = /(?=^\s*[a-z0-9A-Z_]+(?:\(([a-zA-Z\-]*)\)#|#)|[a-zA-Z]+[0-9]\/[0-9]\z)/;
|
||||
/* regex for IPv4 address */
|
||||
const $IP4 = /(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|9[0-9]|[1-8][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|9[0-9]|[1-8][0-9]|[0-9])(?:\/\d{1,2})?/;
|
||||
/* regex for IPv6 address, from: https://www.regextester.com/104187*/
|
||||
const $IP6 = /(?![^\w:])(([0-9a-f]{1,4}:){1,7}:|:(:[0-9a-f]{1,4}){1,7}|([0-9a-f]{1,4}:){1,7}[0-9a-f]{0,4}(:[0-9a-f]{1,4}){1,7})(?![\w:])/;
|
||||
/* regex for MAC address in Cicso IOS notation */
|
||||
const $MAC = /(?:[aA0-fF9]{4}\.){2}[aA0-fF9]{4}/;
|
||||
|
||||
return {
|
||||
name: 'cisco-cli',
|
||||
aliases: ['cisco-cli'],
|
||||
disableAutodetect: true,
|
||||
case_insensitive: true,
|
||||
contains: [
|
||||
{
|
||||
className: '',
|
||||
variants: [
|
||||
{
|
||||
begin: /^VLAN\s*Name/,
|
||||
end: $COMMAND,
|
||||
returnBegin: true,
|
||||
contains: [{className: 'string', begin: /(?:Fa|Gig)\d\/\d+/}, {
|
||||
className: 'number',
|
||||
begin: /\b\d+\b/
|
||||
}, {className: 'keyword', begin: /(?<=^[0-9][0-9]?[0-9]?[0-9]?).+(?=\sactive|\d{6})/}] //este STATUS
|
||||
},
|
||||
{
|
||||
begin: /Cisco\sInternetwork/,
|
||||
end: /is\s[a-fA-F0-9]x[a-fA-F0-9]+/,
|
||||
contains: [{
|
||||
className: 'string',
|
||||
variants: [{begin: /"/, end: /"/}, {begin: /http/, end: /$/}]
|
||||
}, {
|
||||
className: 'string',
|
||||
begin: /Processor\sboard/,
|
||||
end: /\(Read\/Write\)/,
|
||||
contains: [{className: 'number', begin: /^\d/, end: /(\s|K)/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /Interface\s+IP-Address/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /^\w+((\d\/)+\d?|\d+)/}, {begin: /(manual|DHCP|up)/}]
|
||||
}, {className: 'number', begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}/}, {
|
||||
className: 'number',
|
||||
begin: /(?![^\w:])(([0-9a-f]{1,4}:){1,7}:|:(:[0-9a-f]{1,4}){1,7}|([0-9a-f]{1,4}:){1,7}[0-9a-f]{0,4}(:[0-9a-f]{1,4}){1,7})(?![\w:])/
|
||||
}, {className: 'string', begin: /(unset|unassigned|administratively\sdown|down)/},]
|
||||
},
|
||||
{
|
||||
begin: /Capability\sCodes/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'keyword', begin: /\s(\w|\*)(\d|\w?)\s(?=-)/}, {
|
||||
className: 'comment',
|
||||
begin: /Port\sID/,
|
||||
end: /(?=^[a-zA-Z]+(\(([a-zA-Z\-]*)\)#|#)|[a-zA-Z]+[0-9]\/[0-9]\z)/,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /^[\w.]+(?=\s)/}, {begin: /\b\w\b/}]
|
||||
}, {className: 'string', begin: /\s\w{1,3}\s[\d\/]+\d?/}, {className: 'number', begin: /\b\d+\b/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\snat\stranslations)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'number', begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}/}, {
|
||||
className: 'keyword',
|
||||
begin: /(?<=:)\d+(?=\s)/
|
||||
}, {className: 'string', begin: /(?<=^)\w+(?=\s)/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\snat\sstatistics)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'string',
|
||||
variants: [{begin: /(?<=pool\s)\w+(?=\srefCount)/}, {begin: /(?<=Interfaces:\s).+(?=$)/}]
|
||||
}, {className: 'number', variants: [{begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}/}, {begin: /\b\d+\b/}]}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sinterface\s[aA-zZ]+\s*\d+(\/\d+(\/\d+)?)?)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'string',
|
||||
variants: [{begin: /\bup\b/}, {begin: /Full-duplex|Half-duplex/i}, {begin: /(?<=type\sis).+(?=$)/}]
|
||||
}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /\d+.b\/s/}, {begin: /(?:.{4}\.){2}.{4}/}, {begin: /\b\d+\b/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\s(?:ip\s)?ssh)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /(?<=Session\sStarted).+(?=$)/}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /\b\d+\.\d+\b/}, {begin: /\b\d+\b/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\sdhcp\sbinding)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'number', begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}/}, {
|
||||
className: 'string',
|
||||
begin: /(?:.{4}\.){2}.{4}/
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\sdhcp\spool)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'number', begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}/}, {
|
||||
className: 'string',
|
||||
variants: [{begin: /\b\d+\b/}, {begin: /(?<=Pool).+(?=:)/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\smac\saddress-table)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /(?<=\s)[\w\/]+\d(?=\s*$)/}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /(?:.{4}\.){2}.{4}/}, {begin: /\b\d+\b/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sinterfaces\strunk)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /(?<=\s*)[aA-zZ]+\d+(\/\d+(?:\/\d+)?)?/}, {
|
||||
className: 'keyword',
|
||||
begin: /802\.1q/
|
||||
}, {className: 'number', begin: /\b\d+\b/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sinterfaces\s[aA-zZ]+\s*\d+(\/\d+(\/\d+)?)?\sswitchport)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'string',
|
||||
begin: /(?<=(?:Name|Administrative\sMode|Operational\sMode|Access\sMode\sVLAN|Trunking\sNative\sMode\sVLAN):).+(?=$)/
|
||||
}, {className: 'number', begin: /\b\d+\b/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sport-security)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'string',
|
||||
variants: [{begin: /(?<=^)\s+[\w\/]+(?=\s)/}, {begin: /(?<=\d)\s+\w+(?=$)/}]
|
||||
}, {className: 'number', begin: /\b\d+\b/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sport-security\sinterface\s[aA-zZ]+\s*\d+(\/\d+(\/\d+)?)?)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'string',
|
||||
begin: /(?<=(?:Port\s(?:Security|Status)|Violation\sMode)\s+:).+(?=$)/
|
||||
}, {className: 'number', variants: [{begin: /(?:.{4}\.){2}.{4}/}, {begin: /\b\d+\b/}]}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sport-security\saddress)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /\b[aA-zZ]+\d\/\d(\/\d)?\b/}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /(?:.{4}\.){2}.{4}/}, {begin: /\b\d+\b/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sipv6\sinterface\sbrief)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /(?<=).+(?=\[)/}, {begin: /up/}]
|
||||
}, {className: 'string', begin: /unassigned|administratively\sdown|down/}, {
|
||||
className: 'number',
|
||||
begin: /(?![^\w:])(([0-9a-fA-F]{1,4}:){1,7}:|:(:[0-9a-fA-F]{1,4}){1,7}|([0-9a-fA-F]{1,4}:){1,7}[0-9a-fA-F]{0,4}(:[0-9a-fA-F]{1,4}){1,7})(?![\w:])/
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip(v6)?\sroute(\s\w+)?)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /^[aA-zZ]\s(?:[aA-zZ]+)?/}, {begin: /\s(\w|\*)(\d|(\w\w?|\w?))\s(?=-)/}]
|
||||
}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}, {begin: /(?![^\w:])(([0-9a-fA-F]{1,4}:){1,7}:|:(:[0-9a-fA-F]{1,4}){1,7}|([0-9a-fA-F]{1,4}:){1,7}[0-9a-fA-F]{0,4}(:[0-9a-fA-F]{1,4}){1,7})(?![\w:])(\/\d+)?/}]
|
||||
}, {
|
||||
className: 'string',
|
||||
variants: [{begin: /\b([aA-zZ]+\d\/\d(\/\d)?)|(Null|\w{5,})\d+\b/}, {begin: /(?<=\[).+(?=])/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sipv6\sprotocols)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'string',
|
||||
variants: [{begin: '"', end: '"'}, {begin: /\b(\w+\d\/\d(\/\d)?)|\w{4,}\d+\b/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\svtp\sstatus)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'keyword', begin: /Server|Client|Transparent/}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}, {begin: /(?:[\daA-fF]{4}\.){2}[\daA-fF]{4}/}, {begin: /\s\d+\s/}]
|
||||
}, {className: 'string', begin: /(?<=VTP\sDomain\sName\s+:).+(?=$)/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\svtp\scounter)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'number', begin: /\s\d+\s/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\svtp\spassword)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /(?<=Password:\s)\w+(?=\s)/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\ssdm\sprefer)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /(?<=")\w+(?=")/}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /\b[\d.]+K/}, {begin: /\b\d+\b/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\setherchannel\ssummary)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'comment', begin: /\(LACP\sonly\)/}, {
|
||||
className: 'keyword',
|
||||
variants: [{begin: /PAgP|LACP/}, {begin: /(?<=\s).\s(?=-)/}, {begin: /(?<=\().*?(?=\))/}]
|
||||
}, {className: 'string', begin: /(?<=\s)[\w\/]*?(?=\()/}, {className: 'number', begin: /\s\d+\s/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sstandby)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'number',
|
||||
variants: [{begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}, {begin: /(?:[\daA-fF]{4}\.){2}[\daA-fF]{4}/}]
|
||||
}, {
|
||||
className: 'string',
|
||||
variants: [{begin: /(?<=State\sis\s).+(?=$)/}, {begin: /(?<=Group\sname\sis\s).+(?=\()/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sstandby\sbrief)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'number',
|
||||
variants: [{begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}, {begin: /\s\d+\s/}]
|
||||
}, {className: 'string', begin: /[aA-zZ]{1,3}[\d\/]+/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sspanning-tree\svlan\s\d+)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /^\s*[aA-zZ]{1,4}[\d\/]+\s/}]
|
||||
}, {className: 'keyword', begin: /(?<=\.)\d+(?=\s)/}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /(?:[\daA-fF]{4}\.){2}[\daA-fF]{4}/}, {begin: /(?<=\s)\d+(?=\.)/}, {begin: /\s\d+\s/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sspanning-tree\sinterface\s.+\n)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /VLAN\d{4}/}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /(?<=\s)\d+(?=\.)/}, {begin: /\s\d+\s/}]
|
||||
}, {className: 'keyword', begin: /(?<=\.)\d+(?=\s)/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\sprotocols)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: "string",
|
||||
variants: [{begin: '"', end: '"'}, {begin: /K\d=1/}, {begin: /(?<=Redistributing:).+(?=,)/}]
|
||||
}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /\s\d+\s/}, {begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\seigrp\stopology)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /(?<=via).+?(?=[(,])/}, {
|
||||
className: 'keyword',
|
||||
variants: [{begin: /(?<=\s).\s(?=-)/}, {begin: /^\w\s/}, {begin: /FD is \d+\s/}]
|
||||
}, {className: 'number', variants: [{begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}]}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\sospf\sneighbors)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /\s[aA-zZ]+[\d\/]+\s/}, {
|
||||
className: 'number',
|
||||
begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/
|
||||
}, {className: 'keyword', begin: /\s\w+\/\w+\s/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\sospf\sinterface)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /\s[aA-zZ]+[\d\/]+\s/}, {
|
||||
className: 'keyword',
|
||||
variants: [{begin: /\bup\b/}, {begin: /(?<=Network\sType|State).+(?<=,)/}]
|
||||
}, {className: 'number', variants: [{begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}]}] //{begin:/\s\d+\s/}
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\sospf\sborder-routers)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /(?<=\s).\s(?=-)/}, {begin: /^\w\s/}, {begin: /Area\s\d+/}]
|
||||
}, {className: 'number', begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}, {
|
||||
className: 'string',
|
||||
begin: /\b[aA-zZ]+[\d\/]+\b/
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\sospf\sdatabase)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}, {begin: /Area\s\d+/}]
|
||||
}, {className: 'string', begin: /0[xX][\daA-fF]+/}, {className: 'number', begin: /\s\d+\s/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\scache\sflow)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'number',
|
||||
variants: [{begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}, {begin: /\b\d+(\.\d+)?\b/}]
|
||||
}, {
|
||||
className: 'keyword',
|
||||
variants: [{begin: /\b[aA-zZ]+\d\/\d(\/\d)?(\.\d+)?\b/}, {begin: /NULL|Local/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\sflow\sexport)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'number', begin: /\b\d+\b/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\sinterface\s[aA-zZ]+\s*[\d\/]+)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'number',
|
||||
variants: [{begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}, {begin: /\s\d+\s/}]
|
||||
}, {
|
||||
className: 'string',
|
||||
variants: [{begin: /(?<=is\s)(?:up|down)/}, {begin: '"', end: '"'}]
|
||||
}, {className: 'keyword', begin: /MTU/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\ssnmp\scommunity)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /(?<=:).+?(?=\s)/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\ssnmp)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'number', begin: /\s\d+\s/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\sbgp\ssummary)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'keyword', begin: /(?:[0-9]{1,3}\.){3}[0-9]{1,3}(\/\d+)?/}, {
|
||||
className: 'number',
|
||||
begin: /\b\d+\b/
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\saccess-lists)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'string',
|
||||
variants: [{begin: /any/}, {begin: /(?<=access\slist|eq).+(?=$)/}]
|
||||
}, {className: 'number', variants: [{begin: $IP4}, {begin: /\b\d+\b/}]}, {
|
||||
className: 'keyword',
|
||||
begin: /(?<=(permit|deny)\s).+?(?=\s)/
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(Current configuration|Building configuration)/,
|
||||
end: /^end\s/,
|
||||
contains: [
|
||||
{className: 'string', begin: /^ntp/, end: /$/, contains: [{className: 'number', begin: $IP4}]},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^ip\sflow/,
|
||||
end: /$/,
|
||||
contains: [{className: 'number', variants: [{begin: $IP4}, {begin: /\b\d+\b/}]}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^logging/,
|
||||
end: /$/,
|
||||
contains: [{className: 'keyword', begin: /(?<=trap).+(?=$)/}, {className: 'number', begin: $IP4}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^spanning-tree/,
|
||||
end: /$/,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /(?<=mode|priority).+(?=$)/}, {begin: /(?<=vlan).+(?=priority)/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^ip\sdhcp\spool/,
|
||||
end: /!/,
|
||||
excludeEnd: true,
|
||||
contains: [{className: 'keyword', begin: /(?<=pool).+(?=$)/}, {className: 'number', begin: $IP4}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^ip\sdhcp\sex/,
|
||||
end: /$/,
|
||||
contains: [{className: 'number', begin: $IP4}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^ip\snat/,
|
||||
end: /$/,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /(?<=list).+(?=pool|interface)/}, {begin: /(?<=interface).+(?=overload)/}, {begin: /(?<=pool\s).+?(?=\s)/}]
|
||||
}, {className: 'number', begin: $IP4}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^access-list/,
|
||||
end: /$/,
|
||||
contains: [{className: 'number', variants: [{begin: $IP4}, {begin: /\b\d+\b/}]}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^enable/,
|
||||
end: /$/,
|
||||
contains: [{className: 'keyword', begin: /(?<=secret|password).+(?=$)/}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^banner\smotd/,
|
||||
end: /$/,
|
||||
contains: [{className: 'keyword', begin: /(?<=motd).+(?=$)/}]
|
||||
},
|
||||
{className: 'string', begin: /^ip\sroute/, end: /$/, contains: [{className: 'number', begin: $IP4}]},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^ip\slocal\spool/,
|
||||
end: /$/,
|
||||
contains: [{className: 'number', begin: $IP4}, {
|
||||
className: 'keyword',
|
||||
begin: /(?<=pool\s).+?(?=\s)/
|
||||
}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^line/,
|
||||
end: /!/,
|
||||
excludeEnd: true,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /(?<=line|input|password).+(?<=$)/}]
|
||||
}, {className: 'number', begin: /\b\d+\b/}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^ipv6\srouter/,
|
||||
end: /$/,
|
||||
contains: [{className: 'keyword', begin: /(?<=router).+(?<=$)/}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^ipv6\sdhcp/,
|
||||
end: /!/,
|
||||
excludeEnd: true,
|
||||
contains: [{
|
||||
className: 'number',
|
||||
variants: [{begin: $IP6}, {begin: /\b\d+\b/}]
|
||||
}, {className: 'keyword', begin: /(?<=(name|pool)).+(?<=$)/}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^ip\sdomain\sname/,
|
||||
end: /$/,
|
||||
contains: [{className: 'keyword', begin: /(?<=name).+(?=$)/}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^hostname/,
|
||||
end: /$/,
|
||||
contains: [{className: 'keyword', begin: /(?<=hostname).+(?=$)/}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^username/,
|
||||
end: /$/,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /(?<=username).+?(?=\s)/}, {begin: /(?<=secret|password).+(?=$)/}]
|
||||
}, {className: 'number', begin: /\b\d+\b/}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^(?:interface|bba-group)/,
|
||||
end: /!/,
|
||||
excludeEnd: true,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
variants: [{begin: /(?<=interface|server|duplex|speed|group|pool|chap\s(?:hostname|password)|encapsulation|description|ip\snat|switchport\smode).+(?<=$)/}, {begin: /(?<=ipv6).+(?=enable)/}]
|
||||
}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /dhcp|negotiated/}, {begin: $MAC}, {begin: $IP4}, {begin: $IP6}, {begin: /\b\d+\b/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /^router/,
|
||||
end: /!/,
|
||||
excludeEnd: true,
|
||||
contains: [{
|
||||
className: 'keyword',
|
||||
begin: /(?<=router|passive-interface|default-information).+(?=$)/
|
||||
}, {className: 'number', variants: [{begin: $IP4}, {begin: $IP6}, {begin: /\b\d+\b/}]}]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sppp\smultilink)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'keyword', begin: /^\s*\w+(?=,)/}, {
|
||||
className: 'string',
|
||||
variants: [{begin: /(?<=(?:name|discriminator)\sis).+(?=$)/}, {begin: /\b[aA-zZ]+\d+(\/\d+(\/\d+)?)?\b/}]
|
||||
}, {className: 'number', variants: [{begin: /\b\d+x[\daA-fF]+/}, {begin: /\b\d+/}]}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\slocal\spool)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'keyword', begin: /(?<=^)\s*(?!Pool)\w+?(?=\s)/}, {
|
||||
className: 'number',
|
||||
variants: [{begin: $IP4}, {begin: /\b\d+/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\spppoe\ssession)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'number', variants: [{begin: $MAC}, {begin: /\b\d+/}]}, {
|
||||
className: 'string',
|
||||
begin: /\b[aA-zZ\-]+\d+(\/\d+(\/\d+)?)?\b/
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sntp\sstatus)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'keyword', begin: $IP4}, {
|
||||
className: 'number',
|
||||
variants: [{begin: /\b\d+(\.\d+)?/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sclock)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'string', begin: /\b[aA-zZ]+\b/}, {className: 'number', begin: /\b\d+/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sntp\sassociations)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'keyword', begin: $IP4}, {className: 'number', begin: /\b\d+(\.\d+)?/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\scontrollers(?:\s*[aA-zZ\-]+\d+(?:\/\d+(?:\/\d+)?)?)?)/,
|
||||
end: $COMMAND,
|
||||
contains: [{
|
||||
className: 'number',
|
||||
variants: [{begin: /0([xX])[0-9a-fA-F]+/}, {begin: /\b[\da-fA-F]{4}\b/}, {begin: /\b\d+(\.\d+)?/}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\sip\sdhcp\sserver\sstatistics)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'keyword', begin: /(?<=^\s*)(?!Message).+?(?=\d)/}, {
|
||||
className: 'number',
|
||||
begin: /\b\d+/
|
||||
}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\slogging)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'number', begin: /\b\d+/}, {className: 'keyword', begin: /\b[aA-zZ]+\slogging:/}]
|
||||
},
|
||||
{
|
||||
begin: /(?<=show\smonitor)/,
|
||||
end: $COMMAND,
|
||||
contains: [{className: 'keyword', begin: /session\s+\d+/}, {
|
||||
className: 'string',
|
||||
variants: [{begin: /\b[aA-zZ\-]+\d+(\/\d+(\/\d+)?)?\b/}, {begin: /(?<=Type\s+:).+(?=$)/}]
|
||||
}]
|
||||
},
|
||||
/* Section of cisco command keywords, argument, etc. */
|
||||
{
|
||||
className: 'title',
|
||||
begin: /^(([\w()\-]+[>#])|([>#]))/,
|
||||
returnBegin: true,
|
||||
end: /$/,
|
||||
contains:
|
||||
[
|
||||
{
|
||||
className: 'keyword',
|
||||
begin: /[>#]/,
|
||||
end: /$/,
|
||||
excludeBegin: true,
|
||||
contains:
|
||||
[
|
||||
{
|
||||
className: 'number',
|
||||
variants:
|
||||
[
|
||||
{
|
||||
begin: $IP4
|
||||
},
|
||||
{
|
||||
begin: $IP6
|
||||
},
|
||||
{
|
||||
begin: $MAC
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /\b[aA-zZ\-]+\s*\d\/\d(\/\d)?\b/,
|
||||
},
|
||||
{
|
||||
begin: /\b\d+/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=ipv6\srip).+?(?=\s)/
|
||||
},
|
||||
{
|
||||
begin: /(?<=version\s)\d+(?=$)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=username\s+).+?(?=privilege|secret|password)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=(access-group|traffic-filter)).+(?=in|out)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=(secret|password|router|remark|passive-interface|eq|range|key-string|key\schain|#\s*name|description|hostname|standard|domain-name|dhcp\s(pool|server))\s+).*(?=$|\W)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=access-class\s+).+(?=in)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=ip(v6)?\saccess-list\s).+(?=$)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=banner\smotd\s.).+(?=\s.\s)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=source\slist\s).+(?=interface|pool)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=digest-key).+(?=md5)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=pool\s)[a-zA-Z\s]+(?=overload|\d)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=peer\sdefault\sip\saddress\spool).+(?=$)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=snmp-server\s(location|contact)).+(?=$)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=snmp-server\scommunity).+(?=ro)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=md5).+(?=$)/
|
||||
},
|
||||
{
|
||||
className: 'string',
|
||||
begin: /(?<=(permit|deny)\s).+?(?=\s)/
|
||||
},
|
||||
{
|
||||
begin: /(prefix|clockrate|vty|privilege\slevel|maximum|vlan(\s(add|remove))?)\s/,
|
||||
end: /$/,
|
||||
excludeBegin: true
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
})();
|
||||
hljs.registerLanguage('cisco-cli', $lang);
|
||||
})();
|
|
@ -0,0 +1,81 @@
|
|||
(() => {
|
||||
const $lang = (() => {
|
||||
'use strict';
|
||||
return ($lang) => {
|
||||
const $COMMENT = $lang.COMMENT('%dnl');
|
||||
const $HCM = $lang.HASH_COMMENT_MODE;
|
||||
const $QSM = $lang.QUOTE_STRING_MODE;
|
||||
|
||||
const $TYPES = {
|
||||
className: 'type',
|
||||
begin: /^(Name|BuildRequires|BuildConflicts|Version|Release|Epoch|Summary|Group|License|Packager|Vendor|Icon|URL|Distribution|Prefix|Patch[0-9]*|Source[0-9]*|Requires\(?[a-z]*\)?|[a-zA-Z]+Req|Obsoletes|Recommends|Suggests|Supplements|Enhances|Provides|Conflicts|RemovePathPostfixes|Build[a-zA-Z]+|[a-zA-Z]+Arch|Auto[a-zA-Z]+)(:)/,
|
||||
};
|
||||
const $SECTIONS = {
|
||||
className: 'keyword',
|
||||
begin: /(%)(ifarch|ifnarch|ifos|ifnos|if|elifarch|elifos|elif|else|endif)/,
|
||||
};
|
||||
const $KEYWORDS = {
|
||||
className: 'keyword',
|
||||
begin: /(%)(ifarch|ifnarch|ifos|ifnos|if|elifarch|elifos|elif|else|endif)/,
|
||||
};
|
||||
|
||||
return {
|
||||
name: 'rpm-spec',
|
||||
aliases: ['rpm', 'spec', 'rpm-spec', 'specfile'],
|
||||
disableAutodetect: true,
|
||||
contains: [
|
||||
$COMMENT,
|
||||
$HCM,
|
||||
$QSM,
|
||||
$TYPES,
|
||||
$SECTIONS,
|
||||
$KEYWORDS,
|
||||
{
|
||||
className: 'operator',
|
||||
begin: /[>=<]/,
|
||||
},
|
||||
{
|
||||
className: 'variable',
|
||||
begin: /%\{_/,
|
||||
end: /}/,
|
||||
},
|
||||
{
|
||||
className: 'symbol',
|
||||
begin: /%\{\?/,
|
||||
end: /}/,
|
||||
},
|
||||
{
|
||||
className: 'variable',
|
||||
begin: /%\{/,
|
||||
end: /}/,
|
||||
},
|
||||
{
|
||||
className: 'variable',
|
||||
begin: /%\${/,
|
||||
end: /}/,
|
||||
},
|
||||
{
|
||||
className: 'variable',
|
||||
begin: /\${/,
|
||||
end: /}/,
|
||||
},
|
||||
{
|
||||
className: 'variable',
|
||||
begin: /(\$[\w#@][\w_]+)/,
|
||||
},
|
||||
{
|
||||
className: 'symbol',
|
||||
begin: /%/,
|
||||
end: /[ \t\n]/,
|
||||
},
|
||||
{
|
||||
className: 'doctag',
|
||||
begin: /^\* (Mon|Tue|Wed|Thu|Fri|Sat|Sun)/,
|
||||
end: /$/,
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
})();
|
||||
hljs.registerLanguage('rpm-spec', $lang);
|
||||
})();
|
42
data/ui.yml
42
data/ui.yml
|
@ -65,24 +65,24 @@ scripts:
|
|||
- 'js/system.js'
|
||||
code:
|
||||
internal:
|
||||
core:
|
||||
- 'js/code/highlight.min.js'
|
||||
modules:
|
||||
- 'js/code/apache.min.js'
|
||||
- 'js/code/autohotkey.min.js'
|
||||
- 'js/code/autoit.min.js'
|
||||
- 'js/code/awk.min.js'
|
||||
- 'js/code/cmake.min.js'
|
||||
- 'js/code/dns.min.js'
|
||||
- 'js/code/dockerfile.min.js'
|
||||
- 'js/code/dos.min.js'
|
||||
- 'js/code/excel.min.js'
|
||||
- 'js/code/http.min.js'
|
||||
- 'js/code/nginx.min.js'
|
||||
- 'js/code/pf.min.js'
|
||||
- 'js/code/pgsql.min.js'
|
||||
- 'js/code/powershell.min.js'
|
||||
- 'js/code/properties.min.js'
|
||||
- 'js/code/routeros.min.js'
|
||||
- 'js/code/twig.min.js'
|
||||
- 'js/code/vbscript.min.js'
|
||||
- 'js/code/highlight.min.js'
|
||||
- 'js/code/apache.min.js'
|
||||
- 'js/code/autohotkey.min.js'
|
||||
- 'js/code/autoit.min.js'
|
||||
- 'js/code/awk.min.js'
|
||||
- 'js/code/cmake.min.js'
|
||||
- 'js/code/dns.min.js'
|
||||
- 'js/code/dockerfile.min.js'
|
||||
- 'js/code/dos.min.js'
|
||||
- 'js/code/excel.min.js'
|
||||
- 'js/code/http.min.js'
|
||||
- 'js/code/nginx.min.js'
|
||||
- 'js/code/pf.min.js'
|
||||
- 'js/code/pgsql.min.js'
|
||||
- 'js/code/powershell.min.js'
|
||||
- 'js/code/properties.min.js'
|
||||
- 'js/code/routeros.min.js'
|
||||
- 'js/code/twig.min.js'
|
||||
- 'js/code/vbscript.min.js'
|
||||
- 'js/code/custom/cisco-cli.js'
|
||||
- 'js/code/custom/rpm-spec.js'
|
||||
|
|
|
@ -20,17 +20,10 @@
|
|||
<!--[ / vendor-internal ]-->
|
||||
|
||||
<!--[ code-internal ]-->
|
||||
{{ with ($scripts.code.internal.core) }}
|
||||
{{ with ($scripts.code.internal) }}
|
||||
{{ $bundle := slice }}
|
||||
{{ range . }}{{ $bundle = (($bundle) | append (resources.Get .)) }}{{ end }}
|
||||
{{ $bundle = (($bundle) | resources.Concat "js/code.core.bundle.js") }}
|
||||
{{ $bundle = (($bundle) | minify) }}
|
||||
<script src="{{ ($bundle.RelPermalink) }}" crossorigin="anonymous" defer></script>
|
||||
{{ end }}
|
||||
{{ with ($scripts.code.internal.modules) }}
|
||||
{{ $bundle := slice }}
|
||||
{{ range . }}{{ $bundle = (($bundle) | append (resources.Get .)) }}{{ end }}
|
||||
{{ $bundle = (($bundle) | resources.Concat "js/code.modules.bundle.js") }}
|
||||
{{ $bundle = (($bundle) | resources.Concat "js/code.bundle.js") }}
|
||||
{{ $bundle = (($bundle) | minify) }}
|
||||
<script src="{{ ($bundle.RelPermalink) }}" crossorigin="anonymous" defer></script>
|
||||
{{ end }}
|
||||
|
|
Loading…
Reference in New Issue