From 79fd0782822bce978eee7a0210f654eeda8a6c95 Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Thu, 12 Nov 2020 08:42:50 -0500 Subject: [PATCH 1/7] (chore) eslint --fix A-C --- .eslintrc.js | 30 ++-- src/languages/abnf.js | 116 +++++++------- src/languages/accesslog.js | 22 +-- src/languages/actionscript.js | 36 +++-- src/languages/ada.js | 291 ++++++++++++++++++---------------- src/languages/apache.js | 54 ++++--- src/languages/applescript.js | 31 ++-- src/languages/arcade.js | 104 +++++++----- src/languages/armasm.js | 114 +++++++------ src/languages/asciidoc.js | 53 ++++--- src/languages/aspectj.js | 140 ++++++++-------- src/languages/autohotkey.js | 44 +++-- src/languages/autoit.js | 246 +++++++++++++++------------- src/languages/avrasm.js | 16 +- src/languages/awk.js | 34 ++-- src/languages/axapta.js | 15 +- src/languages/basic.js | 36 +++-- src/languages/bnf.js | 6 +- src/languages/brainfuck.js | 2 +- src/languages/cal.js | 64 +++++--- src/languages/capnproto.js | 28 ++-- src/languages/ceylon.js | 24 +-- src/languages/clean.js | 12 +- src/languages/clojure-repl.js | 18 +-- src/languages/cmake.js | 3 +- src/languages/coffeescript.js | 116 +++++++++----- src/languages/coq.js | 4 +- src/languages/cos.js | 121 +++++++------- src/languages/crmsh.js | 25 ++- src/languages/csp.js | 21 +-- src/languages/ebnf.js | 70 ++++---- 31 files changed, 1063 insertions(+), 833 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index ed767149c7..b22620554e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -22,6 +22,7 @@ module.exports = { "@typescript-eslint" ], rules: { + "no-var": 1, "init-declarations": ["error", "always"], "array-callback-return": "error", "block-scoped-var": "error", @@ -32,7 +33,7 @@ module.exports = { // for now ignore diff between types of quoting quotes: "off", // this is the style we are already using - "operator-linebreak": ["error", "before", { overrides: { "?": "after", ":": "after", "+": "after" } }], + "operator-linebreak": ["error", "before", { overrides: { "=": "after", "?": "after", ":": "after", "+": "after" } }], // sometimes we declare variables with extra spacing indent: ["error", 2, { VariableDeclarator: 2 }], // seems like a good idea not to use explicit undefined @@ -53,15 +54,24 @@ module.exports = { files: ["src/languages/*.js"], rules: { "no-unused-expressions": "off", - // languages are all over the map and we don't want to - // do a mass edit so turn off the most egregious rule violations - indent: "off", - "comma-dangle": "off", - "array-bracket-spacing": "off", - "object-curly-spacing": "off", - "key-spacing": "off", - "object-curly-newline": "off", - "object-property-newline": "off" + // // languages are all over the map and we don't want to + // // do a mass edit so turn off the most egregious rule violations + // indent: "off", + "no-useless-escape": 0, + "comma-dangle": 1, + // "array-bracket-spacing": 1, + // "object-curly-spacing": 1, + // "key-spacing": "off", + "array-bracket-newline": [1, { + minItems: 2 + }], + "array-element-newline": 1, + "object-curly-newline": [1, { + minProperties: 1 + }], + "object-property-newline": [2, + { allowAllPropertiesOnSameLine: false } + ] } } ] diff --git a/src/languages/abnf.js b/src/languages/abnf.js index 505a35426f..7b3a3e3fbd 100644 --- a/src/languages/abnf.js +++ b/src/languages/abnf.js @@ -6,70 +6,70 @@ Website: https://tools.ietf.org/html/rfc5234 /** @type LanguageFn */ export default function(hljs) { - var regexes = { - ruleDeclaration: "^[a-zA-Z][a-zA-Z0-9-]*", - unexpectedChars: "[!@#$^&',?+~`|:]" - }; + const regexes = { + ruleDeclaration: "^[a-zA-Z][a-zA-Z0-9-]*", + unexpectedChars: "[!@#$^&',?+~`|:]" + }; - var keywords = [ - "ALPHA", - "BIT", - "CHAR", - "CR", - "CRLF", - "CTL", - "DIGIT", - "DQUOTE", - "HEXDIG", - "HTAB", - "LF", - "LWSP", - "OCTET", - "SP", - "VCHAR", - "WSP" - ]; + const keywords = [ + "ALPHA", + "BIT", + "CHAR", + "CR", + "CRLF", + "CTL", + "DIGIT", + "DQUOTE", + "HEXDIG", + "HTAB", + "LF", + "LWSP", + "OCTET", + "SP", + "VCHAR", + "WSP" + ]; - var commentMode = hljs.COMMENT(";", "$"); + const commentMode = hljs.COMMENT(";", "$"); - var terminalBinaryMode = { - className: "symbol", - begin: /%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/ - }; + const terminalBinaryMode = { + className: "symbol", + begin: /%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/ + }; - var terminalDecimalMode = { - className: "symbol", - begin: /%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/ - }; + const terminalDecimalMode = { + className: "symbol", + begin: /%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/ + }; - var terminalHexadecimalMode = { - className: "symbol", - begin: /%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/, - }; + const terminalHexadecimalMode = { + className: "symbol", + begin: /%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/ + }; - var caseSensitivityIndicatorMode = { - className: "symbol", - begin: /%[si]/ - }; + const caseSensitivityIndicatorMode = { + className: "symbol", + begin: /%[si]/ + }; - var ruleDeclarationMode = { - className: "attribute", - begin: regexes.ruleDeclaration + '(?=\\s*=)', - }; + const ruleDeclarationMode = { + className: "attribute", + begin: regexes.ruleDeclaration + '(?=\\s*=)' + }; - return { - name: 'Augmented Backus-Naur Form', - illegal: regexes.unexpectedChars, - keywords: keywords.join(" "), - contains: [ - ruleDeclarationMode, - commentMode, - terminalBinaryMode, - terminalDecimalMode, - terminalHexadecimalMode, - caseSensitivityIndicatorMode, - hljs.QUOTE_STRING_MODE, - hljs.NUMBER_MODE - ] - }; + return { + name: 'Augmented Backus-Naur Form', + illegal: regexes.unexpectedChars, + keywords: keywords.join(" "), + contains: [ + ruleDeclarationMode, + commentMode, + terminalBinaryMode, + terminalDecimalMode, + terminalHexadecimalMode, + caseSensitivityIndicatorMode, + hljs.QUOTE_STRING_MODE, + hljs.NUMBER_MODE + ] + }; } diff --git a/src/languages/accesslog.js b/src/languages/accesslog.js index 7826f8631e..f22bec7289 100644 --- a/src/languages/accesslog.js +++ b/src/languages/accesslog.js @@ -5,12 +5,12 @@ Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog */ - /** @type LanguageFn */ +/** @type LanguageFn */ export default function(hljs) { // https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods - var HTTP_VERBS = [ + const HTTP_VERBS = [ "GET", "POST", "HEAD", "PUT", "DELETE", "CONNECT", "OPTIONS", "PATCH", "TRACE" - ] + ]; return { name: 'Apache Access Log', contains: [ @@ -18,7 +18,7 @@ export default function(hljs) { { className: 'number', begin: '^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b', - relevance:5 + relevance: 5 }, // Other numbers { @@ -29,13 +29,14 @@ export default function(hljs) { // Requests { className: 'string', - begin: '"(' + HTTP_VERBS.join("|") + ')', end: '"', + begin: '"(' + HTTP_VERBS.join("|") + ')', + end: '"', keywords: HTTP_VERBS.join(" "), illegal: '\\n', relevance: 5, contains: [{ begin: 'HTTP/[12]\\.\\d', - relevance:5 + relevance: 5 }] }, // Dates @@ -50,21 +51,24 @@ export default function(hljs) { }, { className: 'string', - begin: /\[/, end: /\]/, + begin: /\[/, + end: /\]/, illegal: '\\n', relevance: 0 }, // User agent / relevance boost { className: 'string', - begin: '"Mozilla/\\d\\.\\d \\\(', end: '"', + begin: '"Mozilla/\\d\\.\\d \\(', + end: '"', illegal: '\\n', relevance: 3 }, // Strings { className: 'string', - begin: '"', end: '"', + begin: '"', + end: '"', illegal: '\\n', relevance: 0 } diff --git a/src/languages/actionscript.js b/src/languages/actionscript.js index 991a1b72a1..a60097747b 100644 --- a/src/languages/actionscript.js +++ b/src/languages/actionscript.js @@ -6,12 +6,13 @@ Category: scripting /** @type LanguageFn */ export default function(hljs) { - var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*'; - var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)'; + const IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*'; + const IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)'; - var AS3_REST_ARG_MODE = { + const AS3_REST_ARG_MODE = { className: 'rest_arg', - begin: '[.]{3}', end: IDENT_RE, + begin: '[.]{3}', + end: IDENT_RE, relevance: 10 }; @@ -34,33 +35,38 @@ export default function(hljs) { hljs.C_NUMBER_MODE, { className: 'class', - beginKeywords: 'package', end: /\{/, + beginKeywords: 'package', + end: /\{/, contains: [hljs.TITLE_MODE] }, { className: 'class', - beginKeywords: 'class interface', end: /\{/, excludeEnd: true, + beginKeywords: 'class interface', + end: /\{/, + excludeEnd: true, contains: [ - { - beginKeywords: 'extends implements' - }, + { beginKeywords: 'extends implements' }, hljs.TITLE_MODE ] }, { className: 'meta', - beginKeywords: 'import include', end: ';', - keywords: {'meta-keyword': 'import include'} + beginKeywords: 'import include', + end: ';', + keywords: { 'meta-keyword': 'import include' } }, { className: 'function', - beginKeywords: 'function', end: '[{;]', excludeEnd: true, + beginKeywords: 'function', + end: '[{;]', + excludeEnd: true, illegal: '\\S', contains: [ hljs.TITLE_MODE, { className: 'params', - begin: '\\(', end: '\\)', + begin: '\\(', + end: '\\)', contains: [ hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, @@ -69,9 +75,7 @@ export default function(hljs) { AS3_REST_ARG_MODE ] }, - { - begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE - } + { begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE } ] }, hljs.METHOD_GUARD diff --git a/src/languages/ada.js b/src/languages/ada.js index 093fc8a662..7f7a2f14f2 100644 --- a/src/languages/ada.js +++ b/src/languages/ada.js @@ -19,66 +19,67 @@ Description: Ada is a general-purpose programming language that has great suppor /** @type LanguageFn */ export default function(hljs) { - // Regular expression for Ada numeric literals. - // stolen form the VHDL highlighter + // Regular expression for Ada numeric literals. + // stolen form the VHDL highlighter - // Decimal literal: - var INTEGER_RE = '\\d(_|\\d)*'; - var EXPONENT_RE = '[eE][-+]?' + INTEGER_RE; - var DECIMAL_LITERAL_RE = INTEGER_RE + '(\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?'; + // Decimal literal: + const INTEGER_RE = '\\d(_|\\d)*'; + const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE; + const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?'; - // Based literal: - var BASED_INTEGER_RE = '\\w+'; - var BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?'; + // Based literal: + const BASED_INTEGER_RE = '\\w+'; + const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?'; - var NUMBER_RE = '\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')'; + const NUMBER_RE = '\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')'; - // Identifier regex - var ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*'; + // Identifier regex + const ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*'; - // bad chars, only allowed in literals - var BAD_CHARS = `[]\\{\\}%#'"`; + // bad chars, only allowed in literals + const BAD_CHARS = `[]\\{\\}%#'"`; - // Ada doesn't have block comments, only line comments - var COMMENTS = hljs.COMMENT('--', '$'); + // Ada doesn't have block comments, only line comments + const COMMENTS = hljs.COMMENT('--', '$'); - // variable declarations of the form - // Foo : Bar := Baz; - // where only Bar will be highlighted - var VAR_DECLS = { - // TODO: These spaces are not required by the Ada syntax - // however, I have yet to see handwritten Ada code where - // someone does not put spaces around : - begin: '\\s+:\\s+', end: '\\s*(:=|;|\\)|=>|$)', - // endsWithParent: true, - // returnBegin: true, - illegal: BAD_CHARS, - contains: [ - { - // workaround to avoid highlighting - // named loops and declare blocks - beginKeywords: 'loop for declare others', - endsParent: true, - }, - { - // properly highlight all modifiers - className: 'keyword', - beginKeywords: 'not null constant access function procedure in out aliased exception' - }, - { - className: 'type', - begin: ID_REGEX, - endsParent: true, - relevance: 0, - } - ] - }; + // variable declarations of the form + // Foo : Bar := Baz; + // where only Bar will be highlighted + const VAR_DECLS = { + // TODO: These spaces are not required by the Ada syntax + // however, I have yet to see handwritten Ada code where + // someone does not put spaces around : + begin: '\\s+:\\s+', + end: '\\s*(:=|;|\\)|=>|$)', + // endsWithParent: true, + // returnBegin: true, + illegal: BAD_CHARS, + contains: [ + { + // workaround to avoid highlighting + // named loops and declare blocks + beginKeywords: 'loop for declare others', + endsParent: true + }, + { + // properly highlight all modifiers + className: 'keyword', + beginKeywords: 'not null constant access function procedure in out aliased exception' + }, + { + className: 'type', + begin: ID_REGEX, + endsParent: true, + relevance: 0 + } + ] + }; - return { - name: 'Ada', - case_insensitive: true, - keywords: { - keyword: + return { + name: 'Ada', + case_insensitive: true, + keywords: { + keyword: 'abort else new return abs elsif not reverse abstract end ' + 'accept entry select access exception of separate aliased exit or some ' + 'all others subtype and for out synchronized array function overriding ' + @@ -86,98 +87,106 @@ export default function(hljs) { 'body private then if procedure type case in protected constant interface ' + 'is raise use declare range delay limited record when delta loop rem while ' + 'digits renames with do mod requeue xor', - literal: - 'True False', - }, - contains: [ - COMMENTS, - // strings "foobar" - { - className: 'string', - begin: /"/, end: /"/, - contains: [{begin: /""/, relevance: 0}] - }, - // characters '' - { - // character literals always contain one char - className: 'string', - begin: /'.'/ - }, - { - // number literals - className: 'number', - begin: NUMBER_RE, - relevance: 0 - }, - { - // Attributes - className: 'symbol', - begin: "'" + ID_REGEX, - }, - { - // package definition, maybe inside generic - className: 'title', - begin: '(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?', end: '(is|$)', - keywords: 'package body', - excludeBegin: true, - excludeEnd: true, - illegal: BAD_CHARS - }, - { - // function/procedure declaration/definition - // maybe inside generic - begin: '(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+', end: '(\\bis|\\bwith|\\brenames|\\)\\s*;)', - keywords: 'overriding function procedure with is renames return', - // we need to re-match the 'function' keyword, so that - // the title mode below matches only exactly once - returnBegin: true, - contains: + literal: + 'True False' + }, + contains: [ + COMMENTS, + // strings "foobar" + { + className: 'string', + begin: /"/, + end: /"/, + contains: [{ + begin: /""/, + relevance: 0 + }] + }, + // characters '' + { + // character literals always contain one char + className: 'string', + begin: /'.'/ + }, + { + // number literals + className: 'number', + begin: NUMBER_RE, + relevance: 0 + }, + { + // Attributes + className: 'symbol', + begin: "'" + ID_REGEX + }, + { + // package definition, maybe inside generic + className: 'title', + begin: '(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?', + end: '(is|$)', + keywords: 'package body', + excludeBegin: true, + excludeEnd: true, + illegal: BAD_CHARS + }, + { + // function/procedure declaration/definition + // maybe inside generic + begin: '(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+', + end: '(\\bis|\\bwith|\\brenames|\\)\\s*;)', + keywords: 'overriding function procedure with is renames return', + // we need to re-match the 'function' keyword, so that + // the title mode below matches only exactly once + returnBegin: true, + contains: [ - COMMENTS, - { - // name of the function/procedure - className: 'title', - begin: '(\\bwith\\s+)?\\b(function|procedure)\\s+', - end: '(\\(|\\s+|$)', - excludeBegin: true, - excludeEnd: true, - illegal: BAD_CHARS - }, - // 'self' - // // parameter types - VAR_DECLS, - { - // return type - className: 'type', - begin: '\\breturn\\s+', end: '(\\s+|;|$)', - keywords: 'return', - excludeBegin: true, - excludeEnd: true, - // we are done with functions - endsParent: true, - illegal: BAD_CHARS + COMMENTS, + { + // name of the function/procedure + className: 'title', + begin: '(\\bwith\\s+)?\\b(function|procedure)\\s+', + end: '(\\(|\\s+|$)', + excludeBegin: true, + excludeEnd: true, + illegal: BAD_CHARS + }, + // 'self' + // // parameter types + VAR_DECLS, + { + // return type + className: 'type', + begin: '\\breturn\\s+', + end: '(\\s+|;|$)', + keywords: 'return', + excludeBegin: true, + excludeEnd: true, + // we are done with functions + endsParent: true, + illegal: BAD_CHARS - }, + } ] - }, - { - // new type declarations - // maybe inside generic - className: 'type', - begin: '\\b(sub)?type\\s+', end: '\\s+', - keywords: 'type', - excludeBegin: true, - illegal: BAD_CHARS - }, + }, + { + // new type declarations + // maybe inside generic + className: 'type', + begin: '\\b(sub)?type\\s+', + end: '\\s+', + keywords: 'type', + excludeBegin: true, + illegal: BAD_CHARS + }, - // see comment above the definition - VAR_DECLS, + // see comment above the definition + VAR_DECLS - // no markup - // relevance boosters for small snippets - // {begin: '\\s*=>\\s*'}, - // {begin: '\\s*:=\\s*'}, - // {begin: '\\s+:=\\s+'}, - ] - }; + // no markup + // relevance boosters for small snippets + // {begin: '\\s*=>\\s*'}, + // {begin: '\\s*:=\\s*'}, + // {begin: '\\s+:=\\s+'}, + ] + }; } diff --git a/src/languages/apache.js b/src/languages/apache.js index 9c8fd7db6c..bc9493b1db 100644 --- a/src/languages/apache.js +++ b/src/languages/apache.js @@ -9,13 +9,19 @@ Category: common, config /** @type LanguageFn */ export default function(hljs) { - var NUMBER_REF = {className: 'number', begin: '[\\$%]\\d+'}; - var NUMBER = {className: 'number', begin: '\\d+'}; - var IP_ADDRESS = { + const NUMBER_REF = { + className: 'number', + begin: '[\\$%]\\d+' + }; + const NUMBER = { + className: 'number', + begin: '\\d+' + }; + const IP_ADDRESS = { className: "number", begin: '\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?' }; - var PORT_NUMBER = { + const PORT_NUMBER = { className: "number", begin: ":\\d{1,5}" }; @@ -25,42 +31,44 @@ export default function(hljs) { case_insensitive: true, contains: [ hljs.HASH_COMMENT_MODE, - {className: 'section', begin: '', - contains: [ - IP_ADDRESS, - PORT_NUMBER, - // low relevance prevents us from claming XML/HTML where this rule would - // match strings inside of XML tags - hljs.inherit(hljs.QUOTE_STRING_MODE, { relevance:0 }) - ] - }, + { + className: 'section', + begin: '', + contains: [ + IP_ADDRESS, + PORT_NUMBER, + // low relevance prevents us from claming XML/HTML where this rule would + // match strings inside of XML tags + hljs.inherit(hljs.QUOTE_STRING_MODE, { relevance: 0 }) + ] + }, { className: 'attribute', begin: /\w+/, relevance: 0, // keywords aren’t needed for highlighting per se, they only boost relevance // for a very generally defined mode (starts with a word, ends with line-end - keywords: { - nomarkup: + keywords: { nomarkup: 'order deny allow setenv rewriterule rewriteengine rewritecond documentroot ' + 'sethandler errordocument loadmodule options header listen serverroot ' + - 'servername' - }, + 'servername' }, starts: { end: /$/, relevance: 0, - keywords: { - literal: 'on off all deny allow' - }, + keywords: { literal: 'on off all deny allow' }, contains: [ { className: 'meta', - begin: '\\s\\[', end: '\\]$' + begin: '\\s\\[', + end: '\\]$' }, { className: 'variable', - begin: '[\\$%]\\{', end: '\\}', - contains: ['self', NUMBER_REF] + begin: '[\\$%]\\{', + end: '\\}', + contains: ['self', + NUMBER_REF] }, IP_ADDRESS, NUMBER, diff --git a/src/languages/applescript.js b/src/languages/applescript.js index 339f9b906d..493116909d 100644 --- a/src/languages/applescript.js +++ b/src/languages/applescript.js @@ -7,21 +7,31 @@ Website: https://developer.apple.com/library/archive/documentation/AppleScript/C /** @type LanguageFn */ export default function(hljs) { - var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: ''}); - var PARAMS = { + const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, { + illegal: '' + }); + const PARAMS = { className: 'params', - begin: '\\(', end: '\\)', - contains: ['self', hljs.C_NUMBER_MODE, STRING] + begin: '\\(', + end: '\\)', + contains: [ + 'self', + hljs.C_NUMBER_MODE, + STRING + ] }; - var COMMENT_MODE_1 = hljs.COMMENT('--', '$'); - var COMMENT_MODE_2 = hljs.COMMENT( + const COMMENT_MODE_1 = hljs.COMMENT('--', '$'); + const COMMENT_MODE_2 = hljs.COMMENT( '\\(\\*', '\\*\\)', { - contains: ['self', COMMENT_MODE_1] //allow nesting + contains: [ + 'self', // allow nesting + COMMENT_MODE_1 + ] } ); - var COMMENTS = [ + const COMMENTS = [ COMMENT_MODE_1, COMMENT_MODE_2, hljs.HASH_COMMENT_MODE @@ -86,7 +96,10 @@ export default function(hljs) { { beginKeywords: 'on', illegal: '[${=;\\n]', - contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS] + contains: [ + hljs.UNDERSCORE_TITLE_MODE, + PARAMS + ] } ].concat(COMMENTS), illegal: '//|->|=>|\\[\\[' diff --git a/src/languages/arcade.js b/src/languages/arcade.js index 8370158ebb..d65c55a1a8 100644 --- a/src/languages/arcade.js +++ b/src/languages/arcade.js @@ -8,8 +8,8 @@ /** @type LanguageFn */ export default function(hljs) { - var IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*'; - var KEYWORDS = { + const IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*'; + const KEYWORDS = { keyword: 'if for while var new function do return void else break', literal: @@ -27,28 +27,36 @@ export default function(hljs) { 'TrackGeometryWindow TrackIndex TrackStartTime TrackWindow TypeOf Union UrlEncode Variance ' + 'Weekday When Within Year ' }; - var SYMBOL = { + const SYMBOL = { className: 'symbol', begin: '\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+' }; - var NUMBER = { + const NUMBER = { className: 'number', variants: [ - { begin: '\\b(0[bB][01]+)' }, - { begin: '\\b(0[oO][0-7]+)' }, - { begin: hljs.C_NUMBER_RE } + { + begin: '\\b(0[bB][01]+)' + }, + { + begin: '\\b(0[oO][0-7]+)' + }, + { + begin: hljs.C_NUMBER_RE + } ], relevance: 0 }; - var SUBST = { + const SUBST = { className: 'subst', - begin: '\\$\\{', end: '\\}', + begin: '\\$\\{', + end: '\\}', keywords: KEYWORDS, contains: [] // defined later }; - var TEMPLATE_STRING = { + const TEMPLATE_STRING = { className: 'string', - begin: '`', end: '`', + begin: '`', + end: '`', contains: [ hljs.BACKSLASH_ESCAPE, SUBST @@ -61,7 +69,7 @@ export default function(hljs) { NUMBER, hljs.REGEXP_MODE ]; - var PARAMS_CONTAINS = SUBST.contains.concat([ + const PARAMS_CONTAINS = SUBST.contains.concat([ hljs.C_BLOCK_COMMENT_MODE, hljs.C_LINE_COMMENT_MODE ]); @@ -79,14 +87,18 @@ export default function(hljs) { SYMBOL, NUMBER, { // object attr container - begin: /[{,]\s*/, relevance: 0, - contains: [ - { - begin: IDENT_RE + '\\s*:', returnBegin: true, - relevance: 0, - contains: [{className: 'attr', begin: IDENT_RE, relevance: 0}] - } - ] + begin: /[{,]\s*/, + relevance: 0, + contains: [{ + begin: IDENT_RE + '\\s*:', + returnBegin: true, + relevance: 0, + contains: [{ + className: 'attr', + begin: IDENT_RE, + relevance: 0 + }] + }] }, { // "value" container begin: '(' + hljs.RE_STARTERS_RE + '|\\b(return)\\b)\\s*', @@ -97,39 +109,45 @@ export default function(hljs) { hljs.REGEXP_MODE, { className: 'function', - begin: '(\\(.*?\\)|' + IDENT_RE + ')\\s*=>', returnBegin: true, + begin: '(\\(.*?\\)|' + IDENT_RE + ')\\s*=>', + returnBegin: true, end: '\\s*=>', - contains: [ - { - className: 'params', - variants: [ - { - begin: IDENT_RE - }, - { - begin: /\(\s*\)/, - }, - { - begin: /\(/, end: /\)/, - excludeBegin: true, excludeEnd: true, - keywords: KEYWORDS, - contains: PARAMS_CONTAINS - } - ] - } - ] + contains: [{ + className: 'params', + variants: [ + { + begin: IDENT_RE + }, + { + begin: /\(\s*\)/ + }, + { + begin: /\(/, + end: /\)/, + excludeBegin: true, + excludeEnd: true, + keywords: KEYWORDS, + contains: PARAMS_CONTAINS + } + ] + }] } ], relevance: 0 }, { className: 'function', - beginKeywords: 'function', end: /\{/, excludeEnd: true, + beginKeywords: 'function', + end: /\{/, + excludeEnd: true, contains: [ - hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE}), + hljs.inherit(hljs.TITLE_MODE, { + begin: IDENT_RE + }), { className: 'params', - begin: /\(/, end: /\)/, + begin: /\(/, + end: /\)/, excludeBegin: true, excludeEnd: true, contains: PARAMS_CONTAINS diff --git a/src/languages/armasm.js b/src/languages/armasm.js index eadcaf077d..33a4026c57 100644 --- a/src/languages/armasm.js +++ b/src/languages/armasm.js @@ -7,16 +7,21 @@ Category: assembler /** @type LanguageFn */ export default function(hljs) { - //local labels: %?[FB]?[AT]?\d{1,2}\w+ + // local labels: %?[FB]?[AT]?\d{1,2}\w+ const COMMENT = { variants: [ - hljs.COMMENT('^[ \\t]*(?=#)', '$', {relevance: 0, excludeBegin: true }), - hljs.COMMENT('[;@]', '$', {relevance: 0}), + hljs.COMMENT('^[ \\t]*(?=#)', '$', { + relevance: 0, + excludeBegin: true + }), + hljs.COMMENT('[;@]', '$', { + relevance: 0 + }), hljs.C_LINE_COMMENT_MODE, - hljs.C_BLOCK_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE ] - } + }; return { name: 'ARM Assembly', @@ -25,26 +30,26 @@ export default function(hljs) { keywords: { $pattern: '\\.?' + hljs.IDENT_RE, meta: - //GNU preprocs - '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg '+ - //ARM directives + // GNU preprocs + '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ' + + // ARM directives 'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ', built_in: - 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 '+ //standard registers - 'pc lr sp ip sl sb fp '+ //typical regs plus backward compatibility - 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 '+ //more regs and fp - 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 '+ //coprocessor regs - 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 '+ //more coproc - 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 '+ //advanced SIMD NEON regs + 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 ' + // standard registers + 'pc lr sp ip sl sb fp ' + // typical regs plus backward compatibility + 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 ' + // more regs and fp + 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 ' + // coprocessor regs + 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 ' + // more coproc + 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 ' + // advanced SIMD NEON regs - //program status registers - 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf '+ - 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf '+ + // program status registers + 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf ' + + 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf ' + - //NEON and VFP registers - 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 '+ - 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 '+ - 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 '+ + // NEON and VFP registers + 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 ' + + 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 ' + + 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 ' + 'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ' + '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @' @@ -52,24 +57,24 @@ export default function(hljs) { contains: [ { className: 'keyword', - begin: '\\b('+ //mnemonics - 'adc|'+ - '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|'+ - 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|'+ - 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|'+ - 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|'+ - 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|'+ - 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|'+ - 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|'+ - 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|'+ - 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|'+ - 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|'+ - '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|'+ - 'wfe|wfi|yield'+ - ')'+ - '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?'+ //condition codes - '[sptrx]?' + //legal postfixes - '(?=\\s)' // followed by space + begin: '\\b(' + // mnemonics + 'adc|' + + '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|' + + 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|' + + 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|' + + 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|' + + 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|' + + 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|' + + 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|' + + 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|' + + 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|' + + 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|' + + '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|' + + 'wfe|wfi|yield' + + ')' + + '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?' + // condition codes + '[sptrx]?' + // legal postfixes + '(?=\\s)' // followed by space }, COMMENT, hljs.QUOTE_STRING_MODE, @@ -81,26 +86,41 @@ export default function(hljs) { }, { className: 'title', - begin: '\\|', end: '\\|', + begin: '\\|', + end: '\\|', illegal: '\\n', relevance: 0 }, { className: 'number', variants: [ - {begin: '[#$=]?0x[0-9a-f]+'}, //hex - {begin: '[#$=]?0b[01]+'}, //bin - {begin: '[#$=]\\d+'}, //literal - {begin: '\\b\\d+'} //bare number + { // hex + begin: '[#$=]?0x[0-9a-f]+' + }, + { // bin + begin: '[#$=]?0b[01]+' + }, + { // literal + begin: '[#$=]\\d+' + }, + { // bare number + begin: '\\b\\d+' + } ], relevance: 0 }, { className: 'symbol', variants: [ - {begin: '^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU ARM syntax - {begin: '^[a-z_\\.\\$][a-z0-9_\\.\\$]+'}, //ARM syntax - {begin: '[=#]\\w+' } //label reference + { // GNU ARM syntax + begin: '^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:' + }, + { // ARM syntax + begin: '^[a-z_\\.\\$][a-z0-9_\\.\\$]+' + }, + { // label reference + begin: '[=#]\\w+' + } ], relevance: 0 } diff --git a/src/languages/asciidoc.js b/src/languages/asciidoc.js index 1962bb0930..e24b5194a0 100644 --- a/src/languages/asciidoc.js +++ b/src/languages/asciidoc.js @@ -18,8 +18,8 @@ export default function(hljs) { '^/{4,}\\n', '\\n/{4,}$', // can also be done as... - //'^/{4,}$', - //'^/{4,}$', + // '^/{4,}$', + // '^/{4,}$', { relevance: 10 } @@ -48,8 +48,12 @@ export default function(hljs) { className: 'section', relevance: 10, variants: [ - {begin: '^(={1,5}) .+?( \\1)?$'}, - {begin: '^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$'}, + { + begin: '^(={1,5}) .+?( \\1)?$' + }, + { + begin: '^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$' + } ] }, // document attributes @@ -84,13 +88,12 @@ export default function(hljs) { { begin: '^\\+{4,}\\n', end: '\\n\\+{4,}$', - contains: [ - { - begin: '<', end: '>', - subLanguage: 'xml', - relevance: 0 - } - ], + contains: [{ + begin: '<', + end: '>', + subLanguage: 'xml', + relevance: 0 + }], relevance: 10 }, // lists (can only capture indicators) @@ -111,12 +114,10 @@ export default function(hljs) { begin: '\\B\\*(?![\\*\\s])', end: '(\\n{2}|\\*)', // allow escaped asterisk followed by word char - contains: [ - { - begin: '\\\\*\\w', - relevance: 0 - } - ] + contains: [{ + begin: '\\\\*\\w', + relevance: 0 + }] }, // inline emphasis { @@ -125,12 +126,10 @@ export default function(hljs) { begin: '\\B\'(?![\'\\s])', end: '(\\n{2}|\')', // allow escaped single quote followed by word char - contains: [ - { - begin: '\\\\\'\\w', - relevance: 0 - } - ], + contains: [{ + begin: '\\\\\'\\w', + relevance: 0 + }], relevance: 0 }, // inline emphasis (alt) @@ -145,8 +144,12 @@ export default function(hljs) { { className: 'string', variants: [ - {begin: "``.+?''"}, - {begin: "`.+?'"} + { + begin: "``.+?''" + }, + { + begin: "`.+?'" + } ] }, // inline code snippets (TODO should get same treatment as strong and emphasis) diff --git a/src/languages/aspectj.js b/src/languages/aspectj.js index 5b5d5740da..56c0547f38 100644 --- a/src/languages/aspectj.js +++ b/src/languages/aspectj.js @@ -7,34 +7,35 @@ Description: Syntax Highlighting for the AspectJ Language which is a general-pur /** @type LanguageFn */ export default function(hljs) { - var KEYWORDS = - 'false synchronized int abstract float private char boolean static null if const ' + + const KEYWORDS = 'false synchronized int abstract float private char boolean static null if const ' + 'for true while long throw strictfp finally protected import native final return void ' + 'enum else extends implements break transient new catch instanceof byte super volatile case ' + 'assert short package default double public try this switch continue throws privileged ' + 'aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization ' + 'staticinitialization withincode target within execution getWithinTypeName handler ' + - 'thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents '+ + 'thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents ' + 'warning error soft precedence thisAspectInstance'; - var SHORTKEYS = 'get set args call'; + const SHORTKEYS = 'get set args call'; + return { name: 'AspectJ', - keywords : KEYWORDS, - illegal : /<\/|#/, - contains : [ + keywords: KEYWORDS, + illegal: /<\/|#/, + contains: [ hljs.COMMENT( '/\\*\\*', '\\*/', { - relevance : 0, - contains : [ + relevance: 0, + contains: [ { // eat up @'s in emails to prevent them to be recognized as doctags - begin: /\w+@/, relevance: 0 + begin: /\w+@/, + relevance: 0 }, { - className : 'doctag', - begin : '@[A-Za-z]+' + className: 'doctag', + begin: '@[A-Za-z]+' } ] } @@ -44,63 +45,63 @@ export default function(hljs) { hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, { - className : 'class', - beginKeywords : 'aspect', - end : /[{;=]/, - excludeEnd : true, - illegal : /[:;"\[\]]/, - contains : [ + className: 'class', + beginKeywords: 'aspect', + end: /[{;=]/, + excludeEnd: true, + illegal: /[:;"\[\]]/, + contains: [ { - beginKeywords : 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton' + beginKeywords: 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton' }, hljs.UNDERSCORE_TITLE_MODE, { - begin : /\([^\)]*/, - end : /[)]+/, - keywords : KEYWORDS + ' ' + SHORTKEYS, - excludeEnd : false + begin: /\([^\)]*/, + end: /[)]+/, + keywords: KEYWORDS + ' ' + SHORTKEYS, + excludeEnd: false } ] }, { - className : 'class', - beginKeywords : 'class interface', - end : /[{;=]/, - excludeEnd : true, + className: 'class', + beginKeywords: 'class interface', + end: /[{;=]/, + excludeEnd: true, relevance: 0, - keywords : 'class interface', - illegal : /[:"\[\]]/, - contains : [ - {beginKeywords : 'extends implements'}, + keywords: 'class interface', + illegal: /[:"\[\]]/, + contains: [ + { + beginKeywords: 'extends implements' + }, hljs.UNDERSCORE_TITLE_MODE ] }, { // AspectJ Constructs - beginKeywords : 'pointcut after before around throwing returning', - end : /[)]/, - excludeEnd : false, - illegal : /["\[\]]/, - contains : [ - { - begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', - returnBegin : true, - contains : [hljs.UNDERSCORE_TITLE_MODE] - } - ] + beginKeywords: 'pointcut after before around throwing returning', + end: /[)]/, + excludeEnd: false, + illegal: /["\[\]]/, + contains: [{ + begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', + returnBegin: true, + contains: [hljs.UNDERSCORE_TITLE_MODE] + }] }, { - begin : /[:]/, - returnBegin : true, - end : /[{;]/, + begin: /[:]/, + returnBegin: true, + end: /[{;]/, relevance: 0, - excludeEnd : false, - keywords : KEYWORDS, - illegal : /["\[\]]/, - contains : [ + excludeEnd: false, + keywords: KEYWORDS, + illegal: /["\[\]]/, + contains: [ { - begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', - keywords : KEYWORDS + ' ' + SHORTKEYS, + begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', + keywords: KEYWORDS + ' ' + SHORTKEYS, relevance: 0 }, hljs.QUOTE_STRING_MODE @@ -108,30 +109,31 @@ export default function(hljs) { }, { // this prevents 'new Name(...), or throw ...' from being recognized as a function definition - beginKeywords : 'new throw', - relevance : 0 + beginKeywords: 'new throw', + relevance: 0 }, { // the function class is a bit different for AspectJ compared to the Java language - className : 'function', - begin : /\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/, - returnBegin : true, - end : /[{;=]/, - keywords : KEYWORDS, - excludeEnd : true, - contains : [ + className: 'function', + begin: /\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/, + returnBegin: true, + end: /[{;=]/, + keywords: KEYWORDS, + excludeEnd: true, + contains: [ { - begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', - returnBegin : true, + begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', + returnBegin: true, relevance: 0, - contains : [hljs.UNDERSCORE_TITLE_MODE] + contains: [hljs.UNDERSCORE_TITLE_MODE] }, { - className : 'params', - begin : /\(/, end : /\)/, + className: 'params', + begin: /\(/, + end: /\)/, relevance: 0, - keywords : KEYWORDS, - contains : [ + keywords: KEYWORDS, + contains: [ hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, hljs.C_NUMBER_MODE, @@ -145,8 +147,8 @@ export default function(hljs) { hljs.C_NUMBER_MODE, { // annotation is also used in this language - className : 'meta', - begin : '@[A-Za-z]+' + className: 'meta', + begin: '@[A-Za-z]+' } ] }; diff --git a/src/languages/autohotkey.js b/src/languages/autohotkey.js index 1efe3c6192..30165aa25e 100644 --- a/src/languages/autohotkey.js +++ b/src/languages/autohotkey.js @@ -7,7 +7,7 @@ Category: scripting /** @type LanguageFn */ export default function(hljs) { - var BACKTICK_ESCAPE = { + const BACKTICK_ESCAPE = { begin: '`[\\s\\S]' }; @@ -18,12 +18,16 @@ export default function(hljs) { keywords: { keyword: 'Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group', literal: 'true false NOT AND OR', - built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel', + built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel' }, contains: [ BACKTICK_ESCAPE, - hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [BACKTICK_ESCAPE]}), - hljs.COMMENT(';', '$', {relevance: 0}), + hljs.inherit(hljs.QUOTE_STRING_MODE, { + contains: [BACKTICK_ESCAPE] + }), + hljs.COMMENT(';', '$', { + relevance: 0 + }), hljs.C_BLOCK_COMMENT_MODE, { className: 'number', @@ -31,29 +35,41 @@ export default function(hljs) { relevance: 0 }, { - className: 'variable', //subst would be the most accurate however fails the point of highlighting. variable is comparably the most accurate that actually has some effect + // subst would be the most accurate however fails the point of + // highlighting. variable is comparably the most accurate that actually + // has some effect + className: 'variable', begin: '%[a-zA-Z0-9#_$@]+%' }, { className: 'built_in', begin: '^\\s*\\w+\\s*(,|%)' - //I don't really know if this is totally relevant + // I don't really know if this is totally relevant }, { - className: 'title', //symbol would be most accurate however is highlighted just like built_in and that makes up a lot of AutoHotkey code - //meaning that it would fail to highlight anything + // symbol would be most accurate however is highlighted just like + // built_in and that makes up a lot of AutoHotkey code meaning that it + // would fail to highlight anything + className: 'title', variants: [ - {begin: '^[^\\n";]+::(?!=)'}, - {begin: '^[^\\n";]+:(?!=)', relevance: 0} // zero relevance as it catches a lot of things - // followed by a single ':' in many languages + { + begin: '^[^\\n";]+::(?!=)' + }, + { + begin: '^[^\\n";]+:(?!=)', + // zero relevance as it catches a lot of things + // followed by a single ':' in many languages + relevance: 0 + } ] }, { className: 'meta', - begin: '^\\s*#\\w+', end:'$', + begin: '^\\s*#\\w+', + end: '$', relevance: 0 }, - { + { className: 'built_in', begin: 'A_[a-zA-Z0-9]+' }, @@ -62,5 +78,5 @@ export default function(hljs) { begin: ',\\s*,' } ] - } + }; } diff --git a/src/languages/autoit.js b/src/languages/autoit.js index f5ecd57cf9..844d44ae9c 100644 --- a/src/languages/autoit.js +++ b/src/languages/autoit.js @@ -7,138 +7,158 @@ Category: scripting /** @type LanguageFn */ export default function(hljs) { - var KEYWORDS = 'ByRef Case Const ContinueCase ContinueLoop ' + + const KEYWORDS = 'ByRef Case Const ContinueCase ContinueLoop ' + 'Default Dim Do Else ElseIf EndFunc EndIf EndSelect ' + 'EndSwitch EndWith Enum Exit ExitLoop For Func ' + 'Global If In Local Next ReDim Return Select Static ' + - 'Step Switch Then To Until Volatile WEnd While With', + 'Step Switch Then To Until Volatile WEnd While With'; - LITERAL = 'True False And Null Not Or', + const LITERAL = 'True False And Null Not Or'; - BUILT_IN = - 'Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait', + const BUILT_IN + = 'Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait'; - COMMENT = { - variants: [ - hljs.COMMENT(';', '$', {relevance: 0}), - hljs.COMMENT('#cs', '#ce'), - hljs.COMMENT('#comments-start', '#comments-end') - ] - }, + const COMMENT = { + variants: [ + hljs.COMMENT(';', '$', { + relevance: 0 + }), + hljs.COMMENT('#cs', '#ce'), + hljs.COMMENT('#comments-start', '#comments-end') + ] + }; - VARIABLE = { - begin: '\\$[A-z0-9_]+' - }, + const VARIABLE = { + begin: '\\$[A-z0-9_]+' + }; + + const STRING = { + className: 'string', + variants: [ + { + begin: /"/, + end: /"/, + contains: [{ + begin: /""/, + relevance: 0 + }] + }, + { + begin: /'/, + end: /'/, + contains: [{ + begin: /''/, + relevance: 0 + }] + } + ] + }; + + const NUMBER = { + variants: [ + hljs.BINARY_NUMBER_MODE, + hljs.C_NUMBER_MODE + ] + }; - STRING = { - className: 'string', - variants: [{ + const PREPROCESSOR = { + className: 'meta', + begin: '#', + end: '$', + keywords: { + 'meta-keyword': 'comments include include-once NoTrayIcon OnAutoItStartRegister pragma compile RequireAdmin' + }, + contains: [ + { + begin: /\\\n/, + relevance: 0 + }, + { + beginKeywords: 'include', + keywords: { + 'meta-keyword': 'include' + }, + end: '$', + contains: [ + STRING, + { + className: 'meta-string', + variants: [ + { + begin: '<', + end: '>' + }, + { begin: /"/, end: /"/, contains: [{ - begin: /""/, - relevance: 0 + begin: /""/, + relevance: 0 }] - }, { + }, + { begin: /'/, end: /'/, contains: [{ - begin: /''/, - relevance: 0 + begin: /''/, + relevance: 0 }] - }] - }, - - NUMBER = { - variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE] - }, - - PREPROCESSOR = { - className: 'meta', - begin: '#', - end: '$', - keywords: {'meta-keyword': 'comments include include-once NoTrayIcon OnAutoItStartRegister pragma compile RequireAdmin'}, - contains: [{ - begin: /\\\n/, - relevance: 0 - }, { - beginKeywords: 'include', - keywords: {'meta-keyword': 'include'}, - end: '$', - contains: [ - STRING, { - className: 'meta-string', - variants: [{ - begin: '<', - end: '>' - }, { - begin: /"/, - end: /"/, - contains: [{ - begin: /""/, - relevance: 0 - }] - }, { - begin: /'/, - end: /'/, - contains: [{ - begin: /''/, - relevance: 0 - }] - }] - } - ] - }, - STRING, - COMMENT + } ] - }, - - CONSTANT = { - className: 'symbol', - // begin: '@', - // end: '$', - // keywords: 'AppDataCommonDir AppDataDir AutoItExe AutoItPID AutoItVersion AutoItX64 COM_EventObj CommonFilesDir Compiled ComputerName ComSpec CPUArch CR CRLF DesktopCommonDir DesktopDepth DesktopDir DesktopHeight DesktopRefresh DesktopWidth DocumentsCommonDir error exitCode exitMethod extended FavoritesCommonDir FavoritesDir GUI_CtrlHandle GUI_CtrlId GUI_DragFile GUI_DragId GUI_DropId GUI_WinHandle HomeDrive HomePath HomeShare HotKeyPressed HOUR IPAddress1 IPAddress2 IPAddress3 IPAddress4 KBLayout LF LocalAppDataDir LogonDNSDomain LogonDomain LogonServer MDAY MIN MON MSEC MUILang MyDocumentsDir NumParams OSArch OSBuild OSLang OSServicePack OSType OSVersion ProgramFilesDir ProgramsCommonDir ProgramsDir ScriptDir ScriptFullPath ScriptLineNumber ScriptName SEC StartMenuCommonDir StartMenuDir StartupCommonDir StartupDir SW_DISABLE SW_ENABLE SW_HIDE SW_LOCK SW_MAXIMIZE SW_MINIMIZE SW_RESTORE SW_SHOW SW_SHOWDEFAULT SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL SW_UNLOCK SystemDir TAB TempDir TRAY_ID TrayIconFlashing TrayIconVisible UserName UserProfileDir WDAY WindowsDir WorkingDir YDAY YEAR', - // relevance: 5 - begin: '@[A-z0-9_]+' - }, + } + ] + }, + STRING, + COMMENT + ] + }; - FUNCTION = { - className: 'function', - beginKeywords: 'Func', - end: '$', - illegal: '\\$|\\[|%', - contains: [ - hljs.UNDERSCORE_TITLE_MODE, { - className: 'params', - begin: '\\(', - end: '\\)', - contains: [ - VARIABLE, - STRING, - NUMBER - ] - } - ] - }; + const CONSTANT = { + className: 'symbol', + // begin: '@', + // end: '$', + // keywords: 'AppDataCommonDir AppDataDir AutoItExe AutoItPID AutoItVersion AutoItX64 COM_EventObj CommonFilesDir Compiled ComputerName ComSpec CPUArch CR CRLF DesktopCommonDir DesktopDepth DesktopDir DesktopHeight DesktopRefresh DesktopWidth DocumentsCommonDir error exitCode exitMethod extended FavoritesCommonDir FavoritesDir GUI_CtrlHandle GUI_CtrlId GUI_DragFile GUI_DragId GUI_DropId GUI_WinHandle HomeDrive HomePath HomeShare HotKeyPressed HOUR IPAddress1 IPAddress2 IPAddress3 IPAddress4 KBLayout LF LocalAppDataDir LogonDNSDomain LogonDomain LogonServer MDAY MIN MON MSEC MUILang MyDocumentsDir NumParams OSArch OSBuild OSLang OSServicePack OSType OSVersion ProgramFilesDir ProgramsCommonDir ProgramsDir ScriptDir ScriptFullPath ScriptLineNumber ScriptName SEC StartMenuCommonDir StartMenuDir StartupCommonDir StartupDir SW_DISABLE SW_ENABLE SW_HIDE SW_LOCK SW_MAXIMIZE SW_MINIMIZE SW_RESTORE SW_SHOW SW_SHOWDEFAULT SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL SW_UNLOCK SystemDir TAB TempDir TRAY_ID TrayIconFlashing TrayIconVisible UserName UserProfileDir WDAY WindowsDir WorkingDir YDAY YEAR', + // relevance: 5 + begin: '@[A-z0-9_]+' + }; - return { - name: 'AutoIt', - case_insensitive: true, - illegal: /\/\*/, - keywords: { - keyword: KEYWORDS, - built_in: BUILT_IN, - literal: LITERAL - }, + const FUNCTION = { + className: 'function', + beginKeywords: 'Func', + end: '$', + illegal: '\\$|\\[|%', + contains: [ + hljs.UNDERSCORE_TITLE_MODE, + { + className: 'params', + begin: '\\(', + end: '\\)', contains: [ - COMMENT, - VARIABLE, - STRING, - NUMBER, - PREPROCESSOR, - CONSTANT, - FUNCTION + VARIABLE, + STRING, + NUMBER ] - } + } + ] + }; + + return { + name: 'AutoIt', + case_insensitive: true, + illegal: /\/\*/, + keywords: { + keyword: KEYWORDS, + built_in: BUILT_IN, + literal: LITERAL + }, + contains: [ + COMMENT, + VARIABLE, + STRING, + NUMBER, + PREPROCESSOR, + CONSTANT, + FUNCTION + ] + }; } diff --git a/src/languages/avrasm.js b/src/languages/avrasm.js index de2c7a46d9..72eebcfe89 100644 --- a/src/languages/avrasm.js +++ b/src/languages/avrasm.js @@ -56,12 +56,20 @@ export default function(hljs) { hljs.QUOTE_STRING_MODE, { className: 'string', - begin: '\'', end: '[^\\\\]\'', + begin: '\'', + end: '[^\\\\]\'', illegal: '[^\\\\][^\']' }, - {className: 'symbol', begin: '^[A-Za-z0-9_.$]+:'}, - {className: 'meta', begin: '#', end: '$'}, - { // substitution within a macro + { + className: 'symbol', + begin: '^[A-Za-z0-9_.$]+:' + }, + { + className: 'meta', + begin: '#', + end: '$' + }, + { // substitution within a macro className: 'subst', begin: '@[0-9]+' } diff --git a/src/languages/awk.js b/src/languages/awk.js index f2b424154e..c0a7503912 100644 --- a/src/languages/awk.js +++ b/src/languages/awk.js @@ -7,39 +7,49 @@ Description: language definition for Awk scripts /** @type LanguageFn */ export default function(hljs) { - var VARIABLE = { + const VARIABLE = { className: 'variable', variants: [ - {begin: /\$[\w\d#@][\w\d_]*/}, - {begin: /\$\{(.*?)\}/} + { + begin: /\$[\w\d#@][\w\d_]*/ + }, + { + begin: /\$\{(.*?)\}/ + } ] }; - var KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10'; - var STRING = { + const KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10'; + const STRING = { className: 'string', contains: [hljs.BACKSLASH_ESCAPE], variants: [ { - begin: /(u|b)?r?'''/, end: /'''/, + begin: /(u|b)?r?'''/, + end: /'''/, relevance: 10 }, { - begin: /(u|b)?r?"""/, end: /"""/, + begin: /(u|b)?r?"""/, + end: /"""/, relevance: 10 }, { - begin: /(u|r|ur)'/, end: /'/, + begin: /(u|r|ur)'/, + end: /'/, relevance: 10 }, { - begin: /(u|r|ur)"/, end: /"/, + begin: /(u|r|ur)"/, + end: /"/, relevance: 10 }, { - begin: /(b|br)'/, end: /'/ + begin: /(b|br)'/, + end: /'/ }, { - begin: /(b|br)"/, end: /"/ + begin: /(b|br)"/, + end: /"/ }, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE @@ -57,5 +67,5 @@ export default function(hljs) { hljs.HASH_COMMENT_MODE, hljs.NUMBER_MODE ] - } + }; } diff --git a/src/languages/axapta.js b/src/languages/axapta.js index 297a23a118..cf8dce3b95 100644 --- a/src/languages/axapta.js +++ b/src/languages/axapta.js @@ -32,7 +32,7 @@ export default function(hljs) { 'default', 'false', 'null', - 'true', + 'true' ]; const NORMAL_KEYWORDS = [ @@ -135,7 +135,7 @@ export default function(hljs) { 'validtimestate', 'void', 'where', - 'while', + 'while' ]; const KEYWORDS = { @@ -156,14 +156,19 @@ export default function(hljs) { hljs.C_NUMBER_MODE, { className: 'meta', - begin: '#', end: '$' + begin: '#', + end: '$' }, { className: 'class', - beginKeywords: 'class interface', end: /\{/, excludeEnd: true, + beginKeywords: 'class interface', + end: /\{/, + excludeEnd: true, illegal: ':', contains: [ - {beginKeywords: 'extends implements'}, + { + beginKeywords: 'extends implements' + }, hljs.UNDERSCORE_TITLE_MODE ] } diff --git a/src/languages/basic.js b/src/languages/basic.js index 9143058f5f..1689236341 100644 --- a/src/languages/basic.js +++ b/src/languages/basic.js @@ -13,25 +13,29 @@ export default function(hljs) { illegal: '^\.', // Support explicitly typed variables that end with $%! or #. keywords: { - $pattern: '[a-zA-Z][a-zA-Z0-9_$%!#]*', - keyword: - 'ABS ASC AND ATN AUTO|0 BEEP BLOAD|10 BSAVE|10 CALL CALLS CDBL CHAIN CHDIR CHR$|10 CINT CIRCLE ' + - 'CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ ' + - 'DEFDBL DEFINT DEFSNG DEFSTR DEF|0 SEG USR DELETE DIM DRAW EDIT END ENVIRON ENVIRON$ ' + - 'EOF EQV ERASE ERDEV ERDEV$ ERL ERR ERROR EXP FIELD FILES FIX FOR|0 FRE GET GOSUB|10 GOTO ' + - 'HEX$ IF THEN ELSE|0 INKEY$ INP INPUT INPUT# INPUT$ INSTR IMP INT IOCTL IOCTL$ KEY ON ' + - 'OFF LIST KILL LEFT$ LEN LET LINE LLIST LOAD LOC LOCATE LOF LOG LPRINT USING LSET ' + - 'MERGE MID$ MKDIR MKD$ MKI$ MKS$ MOD NAME NEW NEXT NOISE NOT OCT$ ON OR PEN PLAY STRIG OPEN OPTION ' + - 'BASE OUT PAINT PALETTE PCOPY PEEK PMAP POINT POKE POS PRINT PRINT] PSET PRESET ' + - 'PUT RANDOMIZE READ REM RENUM RESET|0 RESTORE RESUME RETURN|0 RIGHT$ RMDIR RND RSET ' + - 'RUN SAVE SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STEP STICK STOP STR$ STRING$ SWAP ' + - 'SYSTEM TAB TAN TIME$ TIMER TROFF TRON TO USR VAL VARPTR VARPTR$ VIEW WAIT WHILE ' + - 'WEND WIDTH WINDOW WRITE XOR' + $pattern: '[a-zA-Z][a-zA-Z0-9_$%!#]*', + keyword: + 'ABS ASC AND ATN AUTO|0 BEEP BLOAD|10 BSAVE|10 CALL CALLS CDBL CHAIN CHDIR CHR$|10 CINT CIRCLE ' + + 'CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ ' + + 'DEFDBL DEFINT DEFSNG DEFSTR DEF|0 SEG USR DELETE DIM DRAW EDIT END ENVIRON ENVIRON$ ' + + 'EOF EQV ERASE ERDEV ERDEV$ ERL ERR ERROR EXP FIELD FILES FIX FOR|0 FRE GET GOSUB|10 GOTO ' + + 'HEX$ IF THEN ELSE|0 INKEY$ INP INPUT INPUT# INPUT$ INSTR IMP INT IOCTL IOCTL$ KEY ON ' + + 'OFF LIST KILL LEFT$ LEN LET LINE LLIST LOAD LOC LOCATE LOF LOG LPRINT USING LSET ' + + 'MERGE MID$ MKDIR MKD$ MKI$ MKS$ MOD NAME NEW NEXT NOISE NOT OCT$ ON OR PEN PLAY STRIG OPEN OPTION ' + + 'BASE OUT PAINT PALETTE PCOPY PEEK PMAP POINT POKE POS PRINT PRINT] PSET PRESET ' + + 'PUT RANDOMIZE READ REM RENUM RESET|0 RESTORE RESUME RETURN|0 RIGHT$ RMDIR RND RSET ' + + 'RUN SAVE SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STEP STICK STOP STR$ STRING$ SWAP ' + + 'SYSTEM TAB TAN TIME$ TIMER TROFF TRON TO USR VAL VARPTR VARPTR$ VIEW WAIT WHILE ' + + 'WEND WIDTH WINDOW WRITE XOR' }, contains: [ hljs.QUOTE_STRING_MODE, - hljs.COMMENT('REM', '$', {relevance: 10}), - hljs.COMMENT('\'', '$', {relevance: 0}), + hljs.COMMENT('REM', '$', { + relevance: 10 + }), + hljs.COMMENT('\'', '$', { + relevance: 0 + }), { // Match line numbers className: 'symbol', diff --git a/src/languages/bnf.js b/src/languages/bnf.js index d4edc03bc6..30f0ecd921 100644 --- a/src/languages/bnf.js +++ b/src/languages/bnf.js @@ -12,7 +12,8 @@ export default function(hljs) { // Attribute { className: 'attribute', - begin: // + begin: // }, // Specific { @@ -20,7 +21,8 @@ export default function(hljs) { end: /$/, contains: [ { - begin: // + begin: // }, // Common hljs.C_LINE_COMMENT_MODE, diff --git a/src/languages/brainfuck.js b/src/languages/brainfuck.js index c10cdb1afc..3634b094b0 100644 --- a/src/languages/brainfuck.js +++ b/src/languages/brainfuck.js @@ -6,7 +6,7 @@ Website: https://esolangs.org/wiki/Brainfuck /** @type LanguageFn */ export default function(hljs) { - var LITERAL = { + const LITERAL = { className: 'literal', begin: /[+-]/, relevance: 0 diff --git a/src/languages/cal.js b/src/languages/cal.js index ab7342e2b7..94cee44a0c 100644 --- a/src/languages/cal.js +++ b/src/languages/cal.js @@ -7,11 +7,11 @@ Website: https://docs.microsoft.com/en-us/dynamics-nav/programming-in-c-al /** @type LanguageFn */ export default function(hljs) { - var KEYWORDS = + const KEYWORDS = 'div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to ' + 'until while with var'; - var LITERALS = 'false true'; - var COMMENT_MODES = [ + const LITERALS = 'false true'; + const COMMENT_MODES = [ hljs.C_LINE_COMMENT_MODE, hljs.COMMENT( /\{/, @@ -28,58 +28,72 @@ export default function(hljs) { } ) ]; - var STRING = { + const STRING = { className: 'string', - begin: /'/, end: /'/, - contains: [{begin: /''/}] + begin: /'/, + end: /'/, + contains: [{ + begin: /''/ + }] }; - var CHAR_STRING = { - className: 'string', begin: /(#\d+)+/ + const CHAR_STRING = { + className: 'string', + begin: /(#\d+)+/ }; - var DATE = { - className: 'number', - begin: '\\b\\d+(\\.\\d+)?(DT|D|T)', - relevance: 0 + const DATE = { + className: 'number', + begin: '\\b\\d+(\\.\\d+)?(DT|D|T)', + relevance: 0 }; - var DBL_QUOTED_VARIABLE = { - className: 'string', // not a string technically but makes sense to be highlighted in the same style - begin: '"', - end: '"' + const DBL_QUOTED_VARIABLE = { + className: 'string', // not a string technically but makes sense to be highlighted in the same style + begin: '"', + end: '"' }; - var PROCEDURE = { + const PROCEDURE = { className: 'function', - beginKeywords: 'procedure', end: /[:;]/, + beginKeywords: 'procedure', + end: /[:;]/, keywords: 'procedure|10', contains: [ hljs.TITLE_MODE, { className: 'params', - begin: /\(/, end: /\)/, + begin: /\(/, + end: /\)/, keywords: KEYWORDS, - contains: [STRING, CHAR_STRING] + contains: [ + STRING, + CHAR_STRING + ] } ].concat(COMMENT_MODES) }; - var OBJECT = { + const OBJECT = { className: 'class', begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)', returnBegin: true, contains: [ hljs.TITLE_MODE, - PROCEDURE + PROCEDURE ] }; return { name: 'C/AL', case_insensitive: true, - keywords: { keyword: KEYWORDS, literal: LITERALS }, + keywords: { + keyword: KEYWORDS, + literal: LITERALS + }, illegal: /\/\*/, contains: [ - STRING, CHAR_STRING, - DATE, DBL_QUOTED_VARIABLE, + STRING, + CHAR_STRING, + DATE, + DBL_QUOTED_VARIABLE, hljs.NUMBER_MODE, OBJECT, PROCEDURE diff --git a/src/languages/capnproto.js b/src/languages/capnproto.js index 5fea8fc84f..f2aad50803 100644 --- a/src/languages/capnproto.js +++ b/src/languages/capnproto.js @@ -35,23 +35,27 @@ export default function(hljs) { }, { className: 'class', - beginKeywords: 'struct enum', end: /\{/, + beginKeywords: 'struct enum', + end: /\{/, illegal: /\n/, - contains: [ - hljs.inherit(hljs.TITLE_MODE, { - starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title - }) - ] + contains: [hljs.inherit(hljs.TITLE_MODE, { + starts: { + endsWithParent: true, + excludeEnd: true + } // hack: eating everything after the first title + })] }, { className: 'class', - beginKeywords: 'interface', end: /\{/, + beginKeywords: 'interface', + end: /\{/, illegal: /\n/, - contains: [ - hljs.inherit(hljs.TITLE_MODE, { - starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title - }) - ] + contains: [hljs.inherit(hljs.TITLE_MODE, { + starts: { + endsWithParent: true, + excludeEnd: true + } // hack: eating everything after the first title + })] } ] }; diff --git a/src/languages/ceylon.js b/src/languages/ceylon.js index 63dfee608c..9f26313413 100644 --- a/src/languages/ceylon.js +++ b/src/languages/ceylon.js @@ -7,25 +7,28 @@ Website: https://ceylon-lang.org /** @type LanguageFn */ export default function(hljs) { // 2.3. Identifiers and keywords - var KEYWORDS = + const KEYWORDS = 'assembly module package import alias class interface object given value ' + 'assign void function new of extends satisfies abstracts in out return ' + 'break continue throw assert dynamic if else switch case for while try ' + 'catch finally then let this outer super is exists nonempty'; // 7.4.1 Declaration Modifiers - var DECLARATION_MODIFIERS = + const DECLARATION_MODIFIERS = 'shared abstract formal default actual variable late native deprecated ' + 'final sealed annotation suppressWarnings small'; // 7.4.2 Documentation - var DOCUMENTATION = + const DOCUMENTATION = 'doc by license see throws tagged'; - var SUBST = { - className: 'subst', excludeBegin: true, excludeEnd: true, - begin: /``/, end: /``/, + const SUBST = { + className: 'subst', + excludeBegin: true, + excludeEnd: true, + begin: /``/, + end: /``/, keywords: KEYWORDS, relevance: 10 }; - var EXPRESSIONS = [ + const EXPRESSIONS = [ { // verbatim string className: 'string', @@ -36,7 +39,8 @@ export default function(hljs) { { // string literal or template className: 'string', - begin: '"', end: '"', + begin: '"', + end: '"', contains: [SUBST] }, { @@ -63,7 +67,9 @@ export default function(hljs) { illegal: '\\$[^01]|#[^0-9a-fA-F]', contains: [ hljs.C_LINE_COMMENT_MODE, - hljs.COMMENT('/\\*', '\\*/', {contains: ['self']}), + hljs.COMMENT('/\\*', '\\*/', { + contains: ['self'] + }), { // compiler annotation className: 'meta', diff --git a/src/languages/clean.js b/src/languages/clean.js index f756675f02..a6d9768e32 100644 --- a/src/languages/clean.js +++ b/src/languages/clean.js @@ -9,7 +9,11 @@ Website: http://clean.cs.ru.nl export default function(hljs) { return { name: 'Clean', - aliases: ['clean','icl','dcl'], + aliases: [ + 'clean', + 'icl', + 'dcl' + ], keywords: { keyword: 'if let in with where case of class instance otherwise ' + @@ -22,14 +26,14 @@ export default function(hljs) { 'True False' }, contains: [ - hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, hljs.C_NUMBER_MODE, - - {begin: '->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>'} // relevance booster + { // relevance booster + begin: '->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>' + } ] }; } diff --git a/src/languages/clojure-repl.js b/src/languages/clojure-repl.js index 6cc1146c6e..f7518e1f4e 100644 --- a/src/languages/clojure-repl.js +++ b/src/languages/clojure-repl.js @@ -11,15 +11,13 @@ Category: lisp export default function(hljs) { return { name: 'Clojure REPL', - contains: [ - { - className: 'meta', - begin: /^([\w.-]+|\s*#_)?=>/, - starts: { - end: /$/, - subLanguage: 'clojure' - } + contains: [{ + className: 'meta', + begin: /^([\w.-]+|\s*#_)?=>/, + starts: { + end: /$/, + subLanguage: 'clojure' } - ] - } + }] + }; } diff --git a/src/languages/cmake.js b/src/languages/cmake.js index f7ff736942..1cae9b15b2 100644 --- a/src/languages/cmake.js +++ b/src/languages/cmake.js @@ -51,7 +51,8 @@ export default function(hljs) { contains: [ { className: 'variable', - begin: /\$\{/, end: /\}/ + begin: /\$\{/, + end: /\}/ }, hljs.HASH_COMMENT_MODE, hljs.QUOTE_STRING_MODE, diff --git a/src/languages/coffeescript.js b/src/languages/coffeescript.js index e5c360d161..e5b4e67735 100644 --- a/src/languages/coffeescript.js +++ b/src/languages/coffeescript.js @@ -11,17 +11,17 @@ import * as ECMAScript from './lib/ecmascript.js'; /** @type LanguageFn */ export default function(hljs) { - var COFFEE_BUILT_INS = [ + const COFFEE_BUILT_INS = [ 'npm', 'print' ]; - var COFFEE_LITERALS = [ + const COFFEE_LITERALS = [ 'yes', 'no', 'on', 'off' ]; - var COFFEE_KEYWORDS = [ + const COFFEE_KEYWORDS = [ 'then', 'unless', 'until', @@ -34,47 +34,63 @@ export default function(hljs) { 'isnt', 'not' ]; - var NOT_VALID_KEYWORDS = [ + const NOT_VALID_KEYWORDS = [ "var", "const", "let", "function", "static" ]; - var excluding = (list) => + const excluding = (list) => (kw) => !list.includes(kw); - var KEYWORDS = { + const KEYWORDS = { keyword: ECMAScript.KEYWORDS.concat(COFFEE_KEYWORDS).filter(excluding(NOT_VALID_KEYWORDS)).join(" "), literal: ECMAScript.LITERALS.concat(COFFEE_LITERALS).join(" "), built_in: ECMAScript.BUILT_INS.concat(COFFEE_BUILT_INS).join(" ") }; - var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*'; - var SUBST = { + const JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*'; + const SUBST = { className: 'subst', - begin: /#\{/, end: /\}/, + begin: /#\{/, + end: /\}/, keywords: KEYWORDS }; - var EXPRESSIONS = [ + const EXPRESSIONS = [ hljs.BINARY_NUMBER_MODE, - hljs.inherit(hljs.C_NUMBER_MODE, {starts: {end: '(\\s*/)?', relevance: 0}}), // a number tries to eat the following slash to prevent treating it as a regexp + hljs.inherit(hljs.C_NUMBER_MODE, { + starts: { + end: '(\\s*/)?', + relevance: 0 + } + }), // a number tries to eat the following slash to prevent treating it as a regexp { className: 'string', variants: [ { - begin: /'''/, end: /'''/, + begin: /'''/, + end: /'''/, contains: [hljs.BACKSLASH_ESCAPE] }, { - begin: /'/, end: /'/, + begin: /'/, + end: /'/, contains: [hljs.BACKSLASH_ESCAPE] }, { - begin: /"""/, end: /"""/, - contains: [hljs.BACKSLASH_ESCAPE, SUBST] + begin: /"""/, + end: /"""/, + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST + ] }, { - begin: /"/, end: /"/, - contains: [hljs.BACKSLASH_ESCAPE, SUBST] + begin: /"/, + end: /"/, + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST + ] } ] }, @@ -82,8 +98,12 @@ export default function(hljs) { className: 'regexp', variants: [ { - begin: '///', end: '///', - contains: [SUBST, hljs.HASH_COMMENT_MODE] + begin: '///', + end: '///', + contains: [ + SUBST, + hljs.HASH_COMMENT_MODE + ] }, { begin: '//[gim]{0,3}(?=\\W)', @@ -101,28 +121,35 @@ export default function(hljs) { }, { subLanguage: 'javascript', - excludeBegin: true, excludeEnd: true, + excludeBegin: true, + excludeEnd: true, variants: [ { - begin: '```', end: '```', + begin: '```', + end: '```' }, { - begin: '`', end: '`', + begin: '`', + end: '`' } ] } ]; SUBST.contains = EXPRESSIONS; - var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE}); - var PARAMS_RE = '(\\(.*\\))?\\s*\\B[-=]>'; - var PARAMS = { + const TITLE = hljs.inherit(hljs.TITLE_MODE, { + begin: JS_IDENT_RE + }); + const PARAMS_RE = '(\\(.*\\))?\\s*\\B[-=]>'; + const PARAMS = { className: 'params', - begin: '\\([^\\(]', returnBegin: true, + begin: '\\([^\\(]', + returnBegin: true, /* We need another contained nameless mode to not have every nested pair of parens to be called "params" */ contains: [{ - begin: /\(/, end: /\)/, + begin: /\(/, + end: /\)/, keywords: KEYWORDS, contains: ['self'].concat(EXPRESSIONS) }] @@ -130,7 +157,11 @@ export default function(hljs) { return { name: 'CoffeeScript', - aliases: ['coffee', 'cson', 'iced'], + aliases: [ + 'coffee', + 'cson', + 'iced' + ], keywords: KEYWORDS, illegal: /\/\*/, contains: EXPRESSIONS.concat([ @@ -138,22 +169,25 @@ export default function(hljs) { hljs.HASH_COMMENT_MODE, { className: 'function', - begin: '^\\s*' + JS_IDENT_RE + '\\s*=\\s*' + PARAMS_RE, end: '[-=]>', + begin: '^\\s*' + JS_IDENT_RE + '\\s*=\\s*' + PARAMS_RE, + end: '[-=]>', returnBegin: true, - contains: [TITLE, PARAMS] + contains: [ + TITLE, + PARAMS + ] }, { // anonymous function start begin: /[:\(,=]\s*/, relevance: 0, - contains: [ - { - className: 'function', - begin: PARAMS_RE, end: '[-=]>', - returnBegin: true, - contains: [PARAMS] - } - ] + contains: [{ + className: 'function', + begin: PARAMS_RE, + end: '[-=]>', + returnBegin: true, + contains: [PARAMS] + }] }, { className: 'class', @@ -171,8 +205,10 @@ export default function(hljs) { ] }, { - begin: JS_IDENT_RE + ':', end: ':', - returnBegin: true, returnEnd: true, + begin: JS_IDENT_RE + ':', + end: ':', + returnBegin: true, + returnEnd: true, relevance: 0 } ]) diff --git a/src/languages/coq.js b/src/languages/coq.js index 8f8a4e573d..622b13e2fd 100644 --- a/src/languages/coq.js +++ b/src/languages/coq.js @@ -69,7 +69,9 @@ export default function(hljs) { begin: '\\|\\s*', end: '\\w+' }, - {begin: /[-=]>/} // relevance booster + { // relevance booster + begin: /[-=]>/ + } ] }; } diff --git a/src/languages/cos.js b/src/languages/cos.js index 48ae01b58e..4410b859f5 100644 --- a/src/languages/cos.js +++ b/src/languages/cos.js @@ -6,29 +6,26 @@ Website: https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls */ /** @type LanguageFn */ -export default function cos (hljs) { - - var STRINGS = { +export default function cos(hljs) { + const STRINGS = { className: 'string', - variants: [ - { - begin: '"', - end: '"', - contains: [{ // escaped - begin: "\"\"", - relevance: 0 - }] - } - ] + variants: [{ + begin: '"', + end: '"', + contains: [{ // escaped + begin: "\"\"", + relevance: 0 + }] + }] }; - var NUMBERS = { + const NUMBERS = { className: "number", begin: "\\b(\\d+(\\.\\d*)?|\\.\\d+)", relevance: 0 }; - var COS_KEYWORDS = + const COS_KEYWORDS = 'property parameter class classmethod clientmethod extends as break ' + 'catch close continue do d|0 else elseif for goto halt hang h|0 if job ' + 'j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 ' + @@ -37,47 +34,50 @@ export default function cos (hljs) { 'zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit ' + 'zsync ascii'; - // registered function - no need in them due to all functions are highlighted, - // but I'll just leave this here. + // registered function - no need in them due to all functions are highlighted, + // but I'll just leave this here. - //"$bit", "$bitcount", - //"$bitfind", "$bitlogic", "$case", "$char", "$classmethod", "$classname", - //"$compile", "$data", "$decimal", "$double", "$extract", "$factor", - //"$find", "$fnumber", "$get", "$increment", "$inumber", "$isobject", - //"$isvaliddouble", "$isvalidnum", "$justify", "$length", "$list", - //"$listbuild", "$listdata", "$listfind", "$listfromstring", "$listget", - //"$listlength", "$listnext", "$listsame", "$listtostring", "$listvalid", - //"$locate", "$match", "$method", "$name", "$nconvert", "$next", - //"$normalize", "$now", "$number", "$order", "$parameter", "$piece", - //"$prefetchoff", "$prefetchon", "$property", "$qlength", "$qsubscript", - //"$query", "$random", "$replace", "$reverse", "$sconvert", "$select", - //"$sortbegin", "$sortend", "$stack", "$text", "$translate", "$view", - //"$wascii", "$wchar", "$wextract", "$wfind", "$wiswide", "$wlength", - //"$wreverse", "$xecute", "$zabs", "$zarccos", "$zarcsin", "$zarctan", - //"$zcos", "$zcot", "$zcsc", "$zdate", "$zdateh", "$zdatetime", - //"$zdatetimeh", "$zexp", "$zhex", "$zln", "$zlog", "$zpower", "$zsec", - //"$zsin", "$zsqr", "$ztan", "$ztime", "$ztimeh", "$zboolean", - //"$zconvert", "$zcrc", "$zcyc", "$zdascii", "$zdchar", "$zf", - //"$ziswide", "$zlascii", "$zlchar", "$zname", "$zposition", "$zqascii", - //"$zqchar", "$zsearch", "$zseek", "$zstrip", "$zwascii", "$zwchar", - //"$zwidth", "$zwpack", "$zwbpack", "$zwunpack", "$zwbunpack", "$zzenkaku", - //"$change", "$mv", "$mvat", "$mvfmt", "$mvfmts", "$mviconv", - //"$mviconvs", "$mvinmat", "$mvlover", "$mvoconv", "$mvoconvs", "$mvraise", - //"$mvtrans", "$mvv", "$mvname", "$zbitand", "$zbitcount", "$zbitfind", - //"$zbitget", "$zbitlen", "$zbitnot", "$zbitor", "$zbitset", "$zbitstr", - //"$zbitxor", "$zincrement", "$znext", "$zorder", "$zprevious", "$zsort", - //"device", "$ecode", "$estack", "$etrap", "$halt", "$horolog", - //"$io", "$job", "$key", "$namespace", "$principal", "$quit", "$roles", - //"$storage", "$system", "$test", "$this", "$tlevel", "$username", - //"$x", "$y", "$za", "$zb", "$zchild", "$zeof", "$zeos", "$zerror", - //"$zhorolog", "$zio", "$zjob", "$zmode", "$znspace", "$zparent", "$zpi", - //"$zpos", "$zreference", "$zstorage", "$ztimestamp", "$ztimezone", - //"$ztrap", "$zversion" + // "$bit", "$bitcount", + // "$bitfind", "$bitlogic", "$case", "$char", "$classmethod", "$classname", + // "$compile", "$data", "$decimal", "$double", "$extract", "$factor", + // "$find", "$fnumber", "$get", "$increment", "$inumber", "$isobject", + // "$isvaliddouble", "$isvalidnum", "$justify", "$length", "$list", + // "$listbuild", "$listdata", "$listfind", "$listfromstring", "$listget", + // "$listlength", "$listnext", "$listsame", "$listtostring", "$listvalid", + // "$locate", "$match", "$method", "$name", "$nconvert", "$next", + // "$normalize", "$now", "$number", "$order", "$parameter", "$piece", + // "$prefetchoff", "$prefetchon", "$property", "$qlength", "$qsubscript", + // "$query", "$random", "$replace", "$reverse", "$sconvert", "$select", + // "$sortbegin", "$sortend", "$stack", "$text", "$translate", "$view", + // "$wascii", "$wchar", "$wextract", "$wfind", "$wiswide", "$wlength", + // "$wreverse", "$xecute", "$zabs", "$zarccos", "$zarcsin", "$zarctan", + // "$zcos", "$zcot", "$zcsc", "$zdate", "$zdateh", "$zdatetime", + // "$zdatetimeh", "$zexp", "$zhex", "$zln", "$zlog", "$zpower", "$zsec", + // "$zsin", "$zsqr", "$ztan", "$ztime", "$ztimeh", "$zboolean", + // "$zconvert", "$zcrc", "$zcyc", "$zdascii", "$zdchar", "$zf", + // "$ziswide", "$zlascii", "$zlchar", "$zname", "$zposition", "$zqascii", + // "$zqchar", "$zsearch", "$zseek", "$zstrip", "$zwascii", "$zwchar", + // "$zwidth", "$zwpack", "$zwbpack", "$zwunpack", "$zwbunpack", "$zzenkaku", + // "$change", "$mv", "$mvat", "$mvfmt", "$mvfmts", "$mviconv", + // "$mviconvs", "$mvinmat", "$mvlover", "$mvoconv", "$mvoconvs", "$mvraise", + // "$mvtrans", "$mvv", "$mvname", "$zbitand", "$zbitcount", "$zbitfind", + // "$zbitget", "$zbitlen", "$zbitnot", "$zbitor", "$zbitset", "$zbitstr", + // "$zbitxor", "$zincrement", "$znext", "$zorder", "$zprevious", "$zsort", + // "device", "$ecode", "$estack", "$etrap", "$halt", "$horolog", + // "$io", "$job", "$key", "$namespace", "$principal", "$quit", "$roles", + // "$storage", "$system", "$test", "$this", "$tlevel", "$username", + // "$x", "$y", "$za", "$zb", "$zchild", "$zeof", "$zeos", "$zerror", + // "$zhorolog", "$zio", "$zjob", "$zmode", "$znspace", "$zparent", "$zpi", + // "$zpos", "$zreference", "$zstorage", "$ztimestamp", "$ztimezone", + // "$ztrap", "$zversion" return { name: 'Caché Object Script', case_insensitive: true, - aliases: ["cos", "cls"], + aliases: [ + "cos", + "cls" + ], keywords: COS_KEYWORDS, contains: [ NUMBERS, @@ -86,7 +86,8 @@ export default function cos (hljs) { hljs.C_BLOCK_COMMENT_MODE, { className: "comment", - begin: /;/, end: "$", + begin: /;/, + end: "$", relevance: 0 }, { // Functions and user-defined functions: write $ztime(60*60*3), $$myFunc(10), $$^Val(1) @@ -109,22 +110,26 @@ export default function cos (hljs) { className: "keyword", begin: /##class|##super|#define|#dim/ }, - // sub-languages: are not fully supported by hljs by 11/15/2015 // left for the future implementation. { - begin: /&sql\(/, end: /\)/, - excludeBegin: true, excludeEnd: true, + begin: /&sql\(/, + end: /\)/, + excludeBegin: true, + excludeEnd: true, subLanguage: "sql" }, { - begin: /&(js|jscript|javascript)/, - excludeBegin: true, excludeEnd: true, + begin: /&(js|jscript|javascript)/, + excludeBegin: true, + excludeEnd: true, subLanguage: "javascript" }, { // this brakes first and last tag, but this is the only way to embed a valid html - begin: /&html<\s*\s*>/, + begin: /&html<\s*\s*>/, subLanguage: "xml" } ] diff --git a/src/languages/crmsh.js b/src/languages/crmsh.js index b7033d31db..6e1b277810 100644 --- a/src/languages/crmsh.js +++ b/src/languages/crmsh.js @@ -8,27 +8,24 @@ Category: config /** @type LanguageFn */ export default function(hljs) { - var RESOURCES = 'primitive rsc_template'; - - var COMMANDS = 'group clone ms master location colocation order fencing_topology ' + + const RESOURCES = 'primitive rsc_template'; + const COMMANDS = 'group clone ms master location colocation order fencing_topology ' + 'rsc_ticket acl_target acl_group user role ' + 'tag xml'; - - var PROPERTY_SETS = 'property rsc_defaults op_defaults'; - - var KEYWORDS = 'params meta operations op rule attributes utilization'; - - var OPERATORS = 'read write deny defined not_defined in_range date spec in ' + + const PROPERTY_SETS = 'property rsc_defaults op_defaults'; + const KEYWORDS = 'params meta operations op rule attributes utilization'; + const OPERATORS = 'read write deny defined not_defined in_range date spec in ' + 'ref reference attribute type xpath version and or lt gt tag ' + 'lte gte eq ne \\'; - - var TYPES = 'number string'; - - var LITERALS = 'Master Started Slave Stopped start promote demote stop monitor true false'; + const TYPES = 'number string'; + const LITERALS = 'Master Started Slave Stopped start promote demote stop monitor true false'; return { name: 'crmsh', - aliases: ['crm', 'pcmk'], + aliases: [ + 'crm', + 'pcmk' + ], case_insensitive: true, keywords: { keyword: KEYWORDS + ' ' + OPERATORS + ' ' + TYPES, diff --git a/src/languages/csp.js b/src/languages/csp.js index 930c381f3c..8cc0909903 100644 --- a/src/languages/csp.js +++ b/src/languages/csp.js @@ -16,17 +16,20 @@ export default function(hljs) { $pattern: '[a-zA-Z][a-zA-Z0-9_-]*', keyword: 'base-uri child-src connect-src default-src font-src form-action ' + 'frame-ancestors frame-src img-src media-src object-src plugin-types ' + - 'report-uri sandbox script-src style-src', + 'report-uri sandbox script-src style-src' }, contains: [ - { - className: 'string', - begin: "'", end: "'" - }, - { - className: 'attribute', - begin: '^Content', end: ':', excludeEnd: true, - }, + { + className: 'string', + begin: "'", + end: "'" + }, + { + className: 'attribute', + begin: '^Content', + end: ':', + excludeEnd: true + } ] }; } diff --git a/src/languages/ebnf.js b/src/languages/ebnf.js index 45d8186fdd..d4e43c4cf0 100644 --- a/src/languages/ebnf.js +++ b/src/languages/ebnf.js @@ -5,42 +5,46 @@ Website: https://en.wikipedia.org/wiki/Extended_Backus–Naur_form */ export default function(hljs) { - var commentMode = hljs.COMMENT(/\(\*/, /\*\)/); + const commentMode = hljs.COMMENT(/\(\*/, /\*\)/); - var nonTerminalMode = { - className: "attribute", - begin: /^[ ]*[a-zA-Z][a-zA-Z_-]*([\s_-]+[a-zA-Z][a-zA-Z]*)*/ - }; + const nonTerminalMode = { + className: "attribute", + begin: /^[ ]*[a-zA-Z][a-zA-Z_-]*([\s_-]+[a-zA-Z][a-zA-Z]*)*/ + }; - var specialSequenceMode = { - className: "meta", - begin: /\?.*\?/ - }; + const specialSequenceMode = { + className: "meta", + begin: /\?.*\?/ + }; - var ruleBodyMode = { - begin: /=/, end: /[.;]/, - contains: [ - commentMode, - specialSequenceMode, - { - // terminals - className: 'string', - variants: [ - hljs.APOS_STRING_MODE, - hljs.QUOTE_STRING_MODE, - {begin: '`', end: '`'}, - ] - }, + const ruleBodyMode = { + begin: /=/, + end: /[.;]/, + contains: [ + commentMode, + specialSequenceMode, + { + // terminals + className: 'string', + variants: [ + hljs.APOS_STRING_MODE, + hljs.QUOTE_STRING_MODE, + { + begin: '`', + end: '`' + } ] - }; + } + ] + }; - return { - name: 'Extended Backus-Naur Form', - illegal: /\S/, - contains: [ - commentMode, - nonTerminalMode, - ruleBodyMode - ] - }; + return { + name: 'Extended Backus-Naur Form', + illegal: /\S/, + contains: [ + commentMode, + nonTerminalMode, + ruleBodyMode + ] + }; } From 8d960d30ff9bea9c26e7b5a58e9acf79df84e11c Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Thu, 12 Nov 2020 10:17:17 -0500 Subject: [PATCH 2/7] D-F --- .eslintrc.js | 8 +- src/languages/d.js | 109 ++++++++++---------- src/languages/dart.js | 48 ++++++--- src/languages/delphi.js | 83 +++++++++++----- src/languages/diff.js | 60 ++++++++--- src/languages/django.js | 35 +++---- src/languages/dns.js | 13 ++- src/languages/dockerfile.js | 3 +- src/languages/dos.js | 23 +++-- src/languages/dsconfig.js | 33 ++++-- src/languages/dts.js | 62 ++++++++---- src/languages/dust.js | 30 +++--- src/languages/ebnf.js | 1 + src/languages/elixir.js | 188 ++++++++++++++++++++++++----------- src/languages/elm.js | 70 +++++++++---- src/languages/erb.js | 4 +- src/languages/erlang-repl.js | 4 +- src/languages/erlang.js | 78 +++++++++------ src/languages/excel.js | 29 ++++-- src/languages/fix.js | 33 +++--- src/languages/flix.js | 79 ++++++++------- src/languages/fortran.js | 30 ++++-- src/languages/fsharp.js | 16 +-- 23 files changed, 665 insertions(+), 374 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index b22620554e..fb7e96f3d5 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -57,12 +57,18 @@ module.exports = { // // languages are all over the map and we don't want to // // do a mass edit so turn off the most egregious rule violations // indent: "off", + "camelcase": 0, + "no-control-regex": 0, "no-useless-escape": 0, "comma-dangle": 1, - // "array-bracket-spacing": 1, + // "array-bracket-spacing": ["error","always", + // { + // objectsInArrays: true + // }], // "object-curly-spacing": 1, // "key-spacing": "off", "array-bracket-newline": [1, { + multiline: true, minItems: 2 }], "array-element-newline": 1, diff --git a/src/languages/d.js b/src/languages/d.js index 9f1d8be95e..239fb59a41 100644 --- a/src/languages/d.js +++ b/src/languages/d.js @@ -30,7 +30,7 @@ export default function(hljs) { * * @type {Object} */ - var D_KEYWORDS = { + const D_KEYWORDS = { $pattern: hljs.UNDERSCORE_IDENT_RE, keyword: 'abstract alias align asm assert auto body break byte case cast catch class ' + @@ -54,31 +54,31 @@ export default function(hljs) { * * @type {String} */ - var decimal_integer_re = '(0|[1-9][\\d_]*)', - decimal_integer_nosus_re = '(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)', - binary_integer_re = '0[bB][01_]+', - hexadecimal_digits_re = '([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)', - hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re, + const decimal_integer_re = '(0|[1-9][\\d_]*)'; + const decimal_integer_nosus_re = '(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)'; + const binary_integer_re = '0[bB][01_]+'; + const hexadecimal_digits_re = '([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)'; + const hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re; - decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')', - decimal_float_re = '(' + decimal_integer_nosus_re + '(\\.\\d*|' + decimal_exponent_re + ')|' + + const decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')'; + const decimal_float_re = '(' + decimal_integer_nosus_re + '(\\.\\d*|' + decimal_exponent_re + ')|' + '\\d+\\.' + decimal_integer_nosus_re + decimal_integer_nosus_re + '|' + '\\.' + decimal_integer_re + decimal_exponent_re + '?' + - ')', - hexadecimal_float_re = '(0[xX](' + - hexadecimal_digits_re + '\\.' + hexadecimal_digits_re + '|'+ + ')'; + const hexadecimal_float_re = '(0[xX](' + + hexadecimal_digits_re + '\\.' + hexadecimal_digits_re + '|' + '\\.?' + hexadecimal_digits_re + - ')[pP][+-]?' + decimal_integer_nosus_re + ')', + ')[pP][+-]?' + decimal_integer_nosus_re + ')'; - integer_re = '(' + + const integer_re = '(' + decimal_integer_re + '|' + - binary_integer_re + '|' + - hexadecimal_integer_re + - ')', + binary_integer_re + '|' + + hexadecimal_integer_re + + ')'; - float_re = '(' + + const float_re = '(' + hexadecimal_float_re + '|' + - decimal_float_re + + decimal_float_re + ')'; /** @@ -86,31 +86,31 @@ export default function(hljs) { * * @type {String} */ - var escape_sequence_re = '\\\\(' + - '[\'"\\?\\\\abfnrtv]|' + // common escapes - 'u[\\dA-Fa-f]{4}|' + // four hex digit unicode codepoint - '[0-7]{1,3}|' + // one to three octal digit ascii char code - 'x[\\dA-Fa-f]{2}|' + // two hex digit ascii char code - 'U[\\dA-Fa-f]{8}' + // eight hex digit unicode codepoint + const escape_sequence_re = '\\\\(' + + '[\'"\\?\\\\abfnrtv]|' + // common escapes + 'u[\\dA-Fa-f]{4}|' + // four hex digit unicode codepoint + '[0-7]{1,3}|' + // one to three octal digit ascii char code + 'x[\\dA-Fa-f]{2}|' + // two hex digit ascii char code + 'U[\\dA-Fa-f]{8}' + // eight hex digit unicode codepoint ')|' + - '&[a-zA-Z\\d]{2,};'; // named character entity + '&[a-zA-Z\\d]{2,};'; // named character entity /** * D integer number literals * * @type {Object} */ - var D_INTEGER_MODE = { + const D_INTEGER_MODE = { className: 'number', - begin: '\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?', - relevance: 0 + begin: '\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?', + relevance: 0 }; /** * [D_FLOAT_MODE description] * @type {Object} */ - var D_FLOAT_MODE = { + const D_FLOAT_MODE = { className: 'number', begin: '\\b(' + float_re + '([fF]|L|i|[fF]i|Li)?|' + @@ -124,9 +124,10 @@ export default function(hljs) { * * @type {Object} */ - var D_CHARACTER_MODE = { + const D_CHARACTER_MODE = { className: 'string', - begin: '\'(' + escape_sequence_re + '|.)', end: '\'', + begin: '\'(' + escape_sequence_re + '|.)', + end: '\'', illegal: '.' }; @@ -135,7 +136,7 @@ export default function(hljs) { * * @type {Object} */ - var D_ESCAPE_SEQUENCE = { + const D_ESCAPE_SEQUENCE = { begin: escape_sequence_re, relevance: 0 }; @@ -145,7 +146,7 @@ export default function(hljs) { * * @type {Object} */ - var D_STRING_MODE = { + const D_STRING_MODE = { className: 'string', begin: '"', contains: [D_ESCAPE_SEQUENCE], @@ -157,7 +158,7 @@ export default function(hljs) { * * @type {Object} */ - var D_WYSIWYG_DELIMITED_STRING_MODE = { + const D_WYSIWYG_DELIMITED_STRING_MODE = { className: 'string', begin: '[rq]"', end: '"[cwd]?', @@ -169,7 +170,7 @@ export default function(hljs) { * * @type {Object} */ - var D_ALTERNATE_WYSIWYG_STRING_MODE = { + const D_ALTERNATE_WYSIWYG_STRING_MODE = { className: 'string', begin: '`', end: '`[cwd]?' @@ -180,7 +181,7 @@ export default function(hljs) { * * @type {Object} */ - var D_HEX_STRING_MODE = { + const D_HEX_STRING_MODE = { className: 'string', begin: 'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?', relevance: 10 @@ -191,7 +192,7 @@ export default function(hljs) { * * @type {Object} */ - var D_TOKEN_STRING_MODE = { + const D_TOKEN_STRING_MODE = { className: 'string', begin: 'q"\\{', end: '\\}"' @@ -202,7 +203,7 @@ export default function(hljs) { * * @type {Object} */ - var D_HASHBANG_MODE = { + const D_HASHBANG_MODE = { className: 'meta', begin: '^#!', end: '$', @@ -214,7 +215,7 @@ export default function(hljs) { * * @type {Object} */ - var D_SPECIAL_TOKEN_SEQUENCE_MODE = { + const D_SPECIAL_TOKEN_SEQUENCE_MODE = { className: 'meta', begin: '#(line)', end: '$', @@ -226,7 +227,7 @@ export default function(hljs) { * * @type {Object} */ - var D_ATTRIBUTE_MODE = { + const D_ATTRIBUTE_MODE = { className: 'keyword', begin: '@[a-zA-Z_][a-zA-Z_\\d]*' }; @@ -236,7 +237,7 @@ export default function(hljs) { * * @type {Object} */ - var D_NESTING_COMMENT_MODE = hljs.COMMENT( + const D_NESTING_COMMENT_MODE = hljs.COMMENT( '\\/\\+', '\\+\\/', { @@ -250,19 +251,19 @@ export default function(hljs) { keywords: D_KEYWORDS, contains: [ hljs.C_LINE_COMMENT_MODE, - hljs.C_BLOCK_COMMENT_MODE, - D_NESTING_COMMENT_MODE, - D_HEX_STRING_MODE, - D_STRING_MODE, - D_WYSIWYG_DELIMITED_STRING_MODE, - D_ALTERNATE_WYSIWYG_STRING_MODE, - D_TOKEN_STRING_MODE, - D_FLOAT_MODE, - D_INTEGER_MODE, - D_CHARACTER_MODE, - D_HASHBANG_MODE, - D_SPECIAL_TOKEN_SEQUENCE_MODE, - D_ATTRIBUTE_MODE + hljs.C_BLOCK_COMMENT_MODE, + D_NESTING_COMMENT_MODE, + D_HEX_STRING_MODE, + D_STRING_MODE, + D_WYSIWYG_DELIMITED_STRING_MODE, + D_ALTERNATE_WYSIWYG_STRING_MODE, + D_TOKEN_STRING_MODE, + D_FLOAT_MODE, + D_INTEGER_MODE, + D_CHARACTER_MODE, + D_HASHBANG_MODE, + D_SPECIAL_TOKEN_SEQUENCE_MODE, + D_ATTRIBUTE_MODE ] }; } diff --git a/src/languages/dart.js b/src/languages/dart.js index 0ceceda46b..238423de78 100644 --- a/src/languages/dart.js +++ b/src/languages/dart.js @@ -7,12 +7,13 @@ Website: https://dart.dev Category: scripting */ +/** @type LanguageFn */ export default function(hljs) { const SUBST = { className: 'subst', variants: [{ begin: '\\$[A-Za-z0-9_]+' - }], + }] }; const BRACED_SUBST = { @@ -21,12 +22,13 @@ export default function(hljs) { begin: /\$\{/, end: /\}/ }], - keywords: 'true false null this is new super', + keywords: 'true false null this is new super' }; const STRING = { className: 'string', - variants: [{ + variants: [ + { begin: 'r\'\'\'', end: '\'\'\'' }, @@ -47,29 +49,46 @@ export default function(hljs) { { begin: '\'\'\'', end: '\'\'\'', - contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST] + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST, + BRACED_SUBST + ] }, { begin: '"""', end: '"""', - contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST] + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST, + BRACED_SUBST + ] }, { begin: '\'', end: '\'', illegal: '\\n', - contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST] + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST, + BRACED_SUBST + ] }, { begin: '"', end: '"', illegal: '\\n', - contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST] + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST, + BRACED_SUBST + ] } ] }; BRACED_SUBST.contains = [ - hljs.C_NUMBER_MODE, STRING + hljs.C_NUMBER_MODE, + STRING ]; const BUILT_IN_TYPES = [ @@ -100,7 +119,7 @@ export default function(hljs) { 'num', // dart:html 'Element', - 'ElementList', + 'ElementList' ]; const NULLABLE_BUILT_IN_TYPES = BUILT_IN_TYPES.map((e) => `${e}?`); @@ -122,8 +141,8 @@ export default function(hljs) { 'document', 'querySelector', 'querySelectorAll', - 'window', - ]).join(' '), + 'window' + ]).join(' '), $pattern: /[A-Za-z][A-Za-z0-9_]*\??/ }; @@ -136,7 +155,7 @@ export default function(hljs) { '/\\*\\*', '\\*/', { subLanguage: 'markdown', - relevance:0 + relevance: 0 } ), hljs.COMMENT( @@ -146,7 +165,7 @@ export default function(hljs) { subLanguage: 'markdown', begin: '.', end: '$', - relevance:0 + relevance: 0 }] } ), @@ -157,7 +176,8 @@ export default function(hljs) { beginKeywords: 'class interface', end: /\{/, excludeEnd: true, - contains: [{ + contains: [ + { beginKeywords: 'extends implements' }, hljs.UNDERSCORE_TITLE_MODE diff --git a/src/languages/delphi.js b/src/languages/delphi.js index 334dddaae4..5f1dbfdc29 100644 --- a/src/languages/delphi.js +++ b/src/languages/delphi.js @@ -5,7 +5,7 @@ Website: https://www.embarcadero.com/products/delphi /** @type LanguageFn */ export default function(hljs) { - var KEYWORDS = + const KEYWORDS = 'exports register file shl array record property for mod while set ally label uses raise not ' + 'stored class safecall var interface or private static exit index inherited to else stdcall ' + 'override shr asm far resourcestring finalization packed virtual out and protected library do ' + @@ -17,74 +17,103 @@ export default function(hljs) { 'unimplemented dynamic export far16 forward generic helper implements interrupt iochecks ' + 'local name nodefault noreturn nostackframe oldfpccall otherwise saveregisters softfloat ' + 'specialize strict unaligned varargs '; - var COMMENT_MODES = [ + const COMMENT_MODES = [ hljs.C_LINE_COMMENT_MODE, - hljs.COMMENT(/\{/, /\}/, {relevance: 0}), - hljs.COMMENT(/\(\*/, /\*\)/, {relevance: 10}) + hljs.COMMENT(/\{/, /\}/, { + relevance: 0 + }), + hljs.COMMENT(/\(\*/, /\*\)/, { + relevance: 10 + }) ]; - var DIRECTIVE = { + const DIRECTIVE = { className: 'meta', variants: [ - {begin: /\{\$/, end: /\}/}, - {begin: /\(\*\$/, end: /\*\)/} + { + begin: /\{\$/, + end: /\}/ + }, + { + begin: /\(\*\$/, + end: /\*\)/ + } ] }; - var STRING = { + const STRING = { className: 'string', - begin: /'/, end: /'/, - contains: [{begin: /''/}] + begin: /'/, + end: /'/, + contains: [{ + begin: /''/ + }] }; - var NUMBER = { + const NUMBER = { className: 'number', relevance: 0, // Source: https://www.freepascal.org/docs-html/ref/refse6.html variants: [ { // Hexadecimal notation, e.g., $7F. - begin: '\\$[0-9A-Fa-f]+', + begin: '\\$[0-9A-Fa-f]+' }, { // Octal notation, e.g., &42. - begin: '&[0-7]+', + begin: '&[0-7]+' }, { // Binary notation, e.g., %1010. - begin: '%[01]+', + begin: '%[01]+' } ] }; - var CHAR_STRING = { - className: 'string', begin: /(#\d+)+/ + const CHAR_STRING = { + className: 'string', + begin: /(#\d+)+/ }; - var CLASS = { - begin: hljs.IDENT_RE + '\\s*=\\s*class\\s*\\(', returnBegin: true, - contains: [ - hljs.TITLE_MODE - ] + const CLASS = { + begin: hljs.IDENT_RE + '\\s*=\\s*class\\s*\\(', + returnBegin: true, + contains: [hljs.TITLE_MODE] }; - var FUNCTION = { + const FUNCTION = { className: 'function', - beginKeywords: 'function constructor destructor procedure', end: /[:;]/, + beginKeywords: 'function constructor destructor procedure', + end: /[:;]/, keywords: 'function constructor|10 destructor|10 procedure|10', contains: [ hljs.TITLE_MODE, { className: 'params', - begin: /\(/, end: /\)/, + begin: /\(/, + end: /\)/, keywords: KEYWORDS, - contains: [STRING, CHAR_STRING, DIRECTIVE].concat(COMMENT_MODES) + contains: [ + STRING, + CHAR_STRING, + DIRECTIVE + ].concat(COMMENT_MODES) }, DIRECTIVE ].concat(COMMENT_MODES) }; return { name: 'Delphi', - aliases: ['dpr', 'dfm', 'pas', 'pascal', 'freepascal', 'lazarus', 'lpr', 'lfm'], + aliases: [ + 'dpr', + 'dfm', + 'pas', + 'pascal', + 'freepascal', + 'lazarus', + 'lpr', + 'lfm' + ], case_insensitive: true, keywords: KEYWORDS, illegal: /"|\$[G-Zg-z]|\/\*|<\/|\|/, contains: [ - STRING, CHAR_STRING, + STRING, + CHAR_STRING, hljs.NUMBER_MODE, NUMBER, CLASS, diff --git a/src/languages/diff.js b/src/languages/diff.js index b56d94d380..f64d78d769 100644 --- a/src/languages/diff.js +++ b/src/languages/diff.js @@ -16,35 +16,67 @@ export default function(hljs) { className: 'meta', relevance: 10, variants: [ - {begin: /^@@ +-\d+,\d+ +\+\d+,\d+ +@@/}, - {begin: /^\*\*\* +\d+,\d+ +\*\*\*\*$/}, - {begin: /^--- +\d+,\d+ +----$/} + { + begin: /^@@ +-\d+,\d+ +\+\d+,\d+ +@@/ + }, + { + begin: /^\*\*\* +\d+,\d+ +\*\*\*\*$/ + }, + { + begin: /^--- +\d+,\d+ +----$/ + } ] }, { className: 'comment', variants: [ - {begin: /Index: /, end: /$/}, - {begin: /^index/, end: /$/}, - {begin: /={3,}/, end: /$/}, - {begin: /^-{3}/, end: /$/}, - {begin: /^\*{3} /, end: /$/}, - {begin: /^\+{3}/, end: /$/}, - {begin: /^\*{15}$/ }, - {begin: /^diff --git/, end: /$/}, + { + begin: /Index: /, + end: /$/ + }, + { + begin: /^index/, + end: /$/ + }, + { + begin: /={3,}/, + end: /$/ + }, + { + begin: /^-{3}/, + end: /$/ + }, + { + begin: /^\*{3} /, + end: /$/ + }, + { + begin: /^\+{3}/, + end: /$/ + }, + { + begin: /^\*{15}$/ + }, + { + begin: /^diff --git/, + end: /$/ + } ] }, { className: 'addition', - begin: /^\+/, end: /$/ + begin: /^\+/, + end: /$/ }, { className: 'deletion', - begin: /^-/, end: /$/ + begin: /^-/, + end: /$/ }, { className: 'addition', - begin: /^!/, end: /$/ + begin: /^!/, + end: /$/ } ] }; diff --git a/src/languages/django.js b/src/languages/django.js index ba9fa57285..07b351fa08 100644 --- a/src/languages/django.js +++ b/src/languages/django.js @@ -8,8 +8,9 @@ Website: https://www.djangoproject.com Category: template */ +/** @type LanguageFn */ export default function(hljs) { - var FILTER = { + const FILTER = { begin: /\|[A-Za-z]+:?/, keywords: { name: @@ -38,13 +39,13 @@ export default function(hljs) { hljs.COMMENT(/\{#/, /#\}/), { className: 'template-tag', - begin: /\{%/, end: /%\}/, - contains: [ - { - className: 'name', - begin: /\w+/, - keywords: { - name: + begin: /\{%/, + end: /%\}/, + contains: [{ + className: 'name', + begin: /\w+/, + keywords: { + name: 'comment endcomment load templatetag ifchanged endifchanged if endif firstof for ' + 'endfor ifnotequal endifnotequal widthratio extends include spaceless ' + 'endspaceless regroup ifequal endifequal ssi now with cycle url filter ' + @@ -54,19 +55,19 @@ export default function(hljs) { 'get_current_language_bidi get_language_info get_language_info_list localize ' + 'endlocalize localtime endlocaltime timezone endtimezone get_current_timezone ' + 'verbatim' - }, - starts: { - endsWithParent: true, - keywords: 'in by as', - contains: [FILTER], - relevance: 0 - } + }, + starts: { + endsWithParent: true, + keywords: 'in by as', + contains: [FILTER], + relevance: 0 } - ] + }] }, { className: 'template-variable', - begin: /\{\{/, end: /\}\}/, + begin: /\{\{/, + end: /\}\}/, contains: [FILTER] } ] diff --git a/src/languages/dns.js b/src/languages/dns.js index aa4f29a612..4746c712da 100644 --- a/src/languages/dns.js +++ b/src/languages/dns.js @@ -9,14 +9,19 @@ Website: https://en.wikipedia.org/wiki/Zone_file export default function(hljs) { return { name: 'DNS Zone', - aliases: ['bind', 'zone'], + aliases: [ + 'bind', + 'zone' + ], keywords: { keyword: 'IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX ' + 'LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT' }, contains: [ - hljs.COMMENT(';', '$', {relevance: 0}), + hljs.COMMENT(';', '$', { + relevance: 0 + }), { className: 'meta', begin: /^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/ @@ -31,7 +36,9 @@ export default function(hljs) { className: 'number', begin: '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b' }, - hljs.inherit(hljs.NUMBER_MODE, {begin: /\b\d+[dhwm]?/}) + hljs.inherit(hljs.NUMBER_MODE, { + begin: /\b\d+[dhwm]?/ + }) ] }; } diff --git a/src/languages/dockerfile.js b/src/languages/dockerfile.js index a156e3022d..6aaf013bef 100644 --- a/src/languages/dockerfile.js +++ b/src/languages/dockerfile.js @@ -7,6 +7,7 @@ Website: https://docs.docker.com/engine/reference/builder/ Category: config */ +/** @type LanguageFn */ export default function(hljs) { return { name: 'Dockerfile', @@ -27,5 +28,5 @@ export default function(hljs) { } ], illegal: ' Website: https://en.wikipedia.org/wiki/Batch_file */ +/** @type LanguageFn */ export default function(hljs) { - var COMMENT = hljs.COMMENT( + const COMMENT = hljs.COMMENT( /^\s*@?rem\b/, /$/, { relevance: 10 } ); - var LABEL = { + const LABEL = { className: 'symbol', begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)', relevance: 0 }; return { name: 'Batch file (DOS)', - aliases: ['bat', 'cmd'], + aliases: [ + 'bat', + 'cmd' + ], case_insensitive: true, illegal: /\/\*/, keywords: { @@ -39,18 +43,23 @@ export default function(hljs) { }, contains: [ { - className: 'variable', begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/ + className: 'variable', + begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/ }, { className: 'function', - begin: LABEL.begin, end: 'goto:eof', + begin: LABEL.begin, + end: 'goto:eof', contains: [ - hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}), + hljs.inherit(hljs.TITLE_MODE, { + begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*' + }), COMMENT ] }, { - className: 'number', begin: '\\b\\d+', + className: 'number', + begin: '\\b\\d+', relevance: 0 }, COMMENT diff --git a/src/languages/dsconfig.js b/src/languages/dsconfig.js index b9fc0ce6c4..666c31076c 100644 --- a/src/languages/dsconfig.js +++ b/src/languages/dsconfig.js @@ -4,23 +4,29 @@ Contributors: Jacob Childress Category: enterprise, config */ + + /** @type LanguageFn */ export default function(hljs) { - var QUOTED_PROPERTY = { + const QUOTED_PROPERTY = { className: 'string', - begin: /"/, end: /"/ + begin: /"/, + end: /"/ }; - var APOS_PROPERTY = { + const APOS_PROPERTY = { className: 'string', - begin: /'/, end: /'/ + begin: /'/, + end: /'/ }; - var UNQUOTED_PROPERTY = { + const UNQUOTED_PROPERTY = { className: 'string', - begin: /[\w\-?]+:\w+/, end: /\W/, + begin: /[\w\-?]+:\w+/, + end: /\W/, relevance: 0 }; - var VALUELESS_PROPERTY = { + const VALUELESS_PROPERTY = { className: 'string', - begin: /\w+-?\w+/, end: /\W/, + begin: /\w+-?\w+/, + end: /\W/, relevance: 0 }; @@ -29,19 +35,24 @@ export default function(hljs) { contains: [ { className: 'keyword', - begin: '^dsconfig', end: /\s/, excludeEnd: true, + begin: '^dsconfig', + end: /\s/, + excludeEnd: true, relevance: 10 }, { className: 'built_in', begin: /(list|create|get|set|delete)-(\w+)/, - end: /\s/, excludeEnd: true, + end: /\s/, + excludeEnd: true, illegal: '!@#$%^&*()', relevance: 10 }, { className: 'built_in', - begin: /--(\w+)/, end: /\s/, excludeEnd: true + begin: /--(\w+)/, + end: /\s/, + excludeEnd: true }, QUOTED_PROPERTY, APOS_PROPERTY, diff --git a/src/languages/dts.js b/src/languages/dts.js index fa312b3fdc..543235fb72 100644 --- a/src/languages/dts.js +++ b/src/languages/dts.js @@ -6,47 +6,66 @@ Website: https://elinux.org/Device_Tree_Reference Category: config */ +/** @type LanguageFn */ export default function(hljs) { - var STRINGS = { + const STRINGS = { className: 'string', variants: [ - hljs.inherit(hljs.QUOTE_STRING_MODE, { begin: '((u8?|U)|L)?"' }), + hljs.inherit(hljs.QUOTE_STRING_MODE, { + begin: '((u8?|U)|L)?"' + }), { - begin: '(u8?|U)?R"', end: '"', + begin: '(u8?|U)?R"', + end: '"', contains: [hljs.BACKSLASH_ESCAPE] }, { - begin: '\'\\\\?.', end: '\'', + begin: '\'\\\\?.', + end: '\'', illegal: '.' } ] }; - var NUMBERS = { + const NUMBERS = { className: 'number', variants: [ - { begin: '\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)' }, - { begin: hljs.C_NUMBER_RE } + { + begin: '\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)' + }, + { + begin: hljs.C_NUMBER_RE + } ], relevance: 0 }; - var PREPROCESSOR = { + const PREPROCESSOR = { className: 'meta', - begin: '#', end: '$', - keywords: {'meta-keyword': 'if else elif endif define undef ifdef ifndef'}, + begin: '#', + end: '$', + keywords: { + 'meta-keyword': 'if else elif endif define undef ifdef ifndef' + }, contains: [ { - begin: /\\\n/, relevance: 0 + begin: /\\\n/, + relevance: 0 }, { - beginKeywords: 'include', end: '$', - keywords: {'meta-keyword': 'include'}, + beginKeywords: 'include', + end: '$', + keywords: { + 'meta-keyword': 'include' + }, contains: [ - hljs.inherit(STRINGS, {className: 'meta-string'}), + hljs.inherit(STRINGS, { + className: 'meta-string' + }), { className: 'meta-string', - begin: '<', end: '>', + begin: '<', + end: '>', illegal: '\\n' } ] @@ -57,22 +76,22 @@ export default function(hljs) { ] }; - var DTS_REFERENCE = { + const DTS_REFERENCE = { className: 'variable', begin: /&[a-z\d_]*\b/ }; - var DTS_KEYWORD = { + const DTS_KEYWORD = { className: 'meta-keyword', begin: '/[a-z][a-z\\d-]*/' }; - var DTS_LABEL = { + const DTS_LABEL = { className: 'symbol', begin: '^\\s*[a-zA-Z_][a-zA-Z\\d_]*:' }; - var DTS_CELL_PROPERTY = { + const DTS_CELL_PROPERTY = { className: 'params', begin: '<', end: '>', @@ -82,7 +101,7 @@ export default function(hljs) { ] }; - var DTS_NODE = { + const DTS_NODE = { className: 'class', begin: /[a-zA-Z_][a-zA-Z\d_@]*\s\{/, end: /[{;=]/, @@ -90,7 +109,7 @@ export default function(hljs) { excludeEnd: true }; - var DTS_ROOT_NODE = { + const DTS_ROOT_NODE = { className: 'class', begin: '/\\s*\\{', end: /\};/, @@ -130,4 +149,3 @@ export default function(hljs) { ] }; } - diff --git a/src/languages/dust.js b/src/languages/dust.js index 4765a57f6b..3ff312324c 100644 --- a/src/languages/dust.js +++ b/src/languages/dust.js @@ -7,8 +7,9 @@ Website: https://www.dustjs.com Category: template */ +/** @type LanguageFn */ export default function(hljs) { - var EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep'; + const EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep'; return { name: 'Dust', aliases: ['dst'], @@ -17,23 +18,24 @@ export default function(hljs) { contains: [ { className: 'template-tag', - begin: /\{[#\/]/, end: /\}/, illegal: /;/, - contains: [ - { - className: 'name', - begin: /[a-zA-Z\.-]+/, - starts: { - endsWithParent: true, relevance: 0, - contains: [ - hljs.QUOTE_STRING_MODE - ] - } + begin: /\{[#\/]/, + end: /\}/, + illegal: /;/, + contains: [{ + className: 'name', + begin: /[a-zA-Z\.-]+/, + starts: { + endsWithParent: true, + relevance: 0, + contains: [hljs.QUOTE_STRING_MODE] } - ] + }] }, { className: 'template-variable', - begin: /\{/, end: /\}/, illegal: /;/, + begin: /\{/, + end: /\}/, + illegal: /;/, keywords: EXPRESSION_KEYWORDS } ] diff --git a/src/languages/ebnf.js b/src/languages/ebnf.js index d4e43c4cf0..b5816e96b6 100644 --- a/src/languages/ebnf.js +++ b/src/languages/ebnf.js @@ -4,6 +4,7 @@ Author: Alex McKibben Website: https://en.wikipedia.org/wiki/Extended_Backus–Naur_form */ +/** @type LanguageFn */ export default function(hljs) { const commentMode = hljs.COMMENT(/\(\*/, /\*\)/); diff --git a/src/languages/elixir.js b/src/languages/elixir.js index cac524f04a..76a1c9a92c 100644 --- a/src/languages/elixir.js +++ b/src/languages/elixir.js @@ -6,101 +6,168 @@ Category: functional Website: https://elixir-lang.org */ +/** @type LanguageFn */ export default function(hljs) { - var ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?'; - var ELIXIR_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?'; - var ELIXIR_KEYWORDS = { + const ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?'; + const ELIXIR_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?'; + const ELIXIR_KEYWORDS = { $pattern: ELIXIR_IDENT_RE, keyword: 'and false then defined module in return redo retry end for true self when ' + 'next until do begin unless nil break not case cond alias while ensure or ' + 'include use alias fn quote require import with|0' }; - var SUBST = { + const SUBST = { className: 'subst', - begin: /#\{/, end: /\}/, + begin: /#\{/, + end: /\}/, keywords: ELIXIR_KEYWORDS }; - var NUMBER = { + const NUMBER = { className: 'number', begin: '(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[1-9][0-9_]*(.[0-9_]+([eE][-+]?[0-9]+)?)?)', relevance: 0 }; - var SIGIL_DELIMITERS = '[/|([{<"\']'; - var LOWERCASE_SIGIL = { + const SIGIL_DELIMITERS = '[/|([{<"\']'; + const LOWERCASE_SIGIL = { className: 'string', begin: '~[a-z]' + '(?=' + SIGIL_DELIMITERS + ')', contains: [ { - endsParent:true, - contains: [{ - contains: [hljs.BACKSLASH_ESCAPE, SUBST], - variants: [ - { begin: /"/, end: /"/ }, - { begin: /'/, end: /'/ }, - { begin: /\//, end: /\// }, - { begin: /\|/, end: /\|/ }, - { begin: /\(/, end: /\)/ }, - { begin: /\[/, end: /\]/ }, - { begin: /\{/, end: /\}/ }, - { begin: // } - ] - }] - }, - ], + endsParent: true, + contains: [ + { + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST + ], + variants: [ + { + begin: /"/, + end: /"/ + }, + { + begin: /'/, + end: /'/ + }, + { + begin: /\//, + end: /\// + }, + { + begin: /\|/, + end: /\|/ + }, + { + begin: /\(/, + end: /\)/ + }, + { + begin: /\[/, + end: /\]/ + }, + { + begin: /\{/, + end: /\}/ + }, + { + begin: // + } + ] + } + ] + } + ] }; - var UPCASE_SIGIL = { + const UPCASE_SIGIL = { className: 'string', begin: '~[A-Z]' + '(?=' + SIGIL_DELIMITERS + ')', contains: [ - { begin: /"/, end: /"/ }, - { begin: /'/, end: /'/ }, - { begin: /\//, end: /\// }, - { begin: /\|/, end: /\|/ }, - { begin: /\(/, end: /\)/ }, - { begin: /\[/, end: /\]/ }, - { begin: /\{/, end: /\}/ }, - { begin: // } + { + begin: /"/, + end: /"/ + }, + { + begin: /'/, + end: /'/ + }, + { + begin: /\//, + end: /\// + }, + { + begin: /\|/, + end: /\|/ + }, + { + begin: /\(/, + end: /\)/ + }, + { + begin: /\[/, + end: /\]/ + }, + { + begin: /\{/, + end: /\}/ + }, + { + begin: // + } ] }; - var STRING = { + const STRING = { className: 'string', - contains: [hljs.BACKSLASH_ESCAPE, SUBST], + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST + ], variants: [ { - begin: /"""/, end: /"""/, + begin: /"""/, + end: /"""/ }, { - begin: /'''/, end: /'''/, + begin: /'''/, + end: /'''/ }, { - begin: /~S"""/, end: /"""/, + begin: /~S"""/, + end: /"""/, contains: [] }, { - begin: /~S"/, end: /"/, + begin: /~S"/, + end: /"/, contains: [] }, { - begin: /~S'''/, end: /'''/, + begin: /~S'''/, + end: /'''/, contains: [] }, { - begin: /~S'/, end: /'/, + begin: /~S'/, + end: /'/, contains: [] }, { - begin: /'/, end: /'/ + begin: /'/, + end: /'/ }, { - begin: /"/, end: /"/ - }, + begin: /"/, + end: /"/ + } ] }; - var FUNCTION = { + const FUNCTION = { className: 'function', - beginKeywords: 'def defp defmacro', end: /\B\b/, // the mode is ended by the title + beginKeywords: 'def defp defmacro', + end: /\B\b/, // the mode is ended by the title contains: [ hljs.inherit(hljs.TITLE_MODE, { begin: ELIXIR_IDENT_RE, @@ -108,11 +175,12 @@ export default function(hljs) { }) ] }; - var CLASS = hljs.inherit(FUNCTION, { + const CLASS = hljs.inherit(FUNCTION, { className: 'class', - beginKeywords: 'defimpl defmodule defprotocol defrecord', end: /\bdo\b|$|;/ + beginKeywords: 'defimpl defmodule defprotocol defrecord', + end: /\bdo\b|$|;/ }); - var ELIXIR_DEFAULT_CONTAINS = [ + const ELIXIR_DEFAULT_CONTAINS = [ STRING, UPCASE_SIGIL, LOWERCASE_SIGIL, @@ -125,7 +193,12 @@ export default function(hljs) { { className: 'symbol', begin: ':(?![\\s:])', - contains: [STRING, {begin: ELIXIR_METHOD_RE}], + contains: [ + STRING, + { + begin: ELIXIR_METHOD_RE + } + ], relevance: 0 }, { @@ -150,20 +223,23 @@ export default function(hljs) { // /: begin: /\/: (?=\d+\s*[,\]])/, relevance: 0, - contains: [ - NUMBER - ] + contains: [NUMBER] }, { className: 'regexp', illegal: '\\n', - contains: [hljs.BACKSLASH_ESCAPE, SUBST], + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST + ], variants: [ { - begin: '/', end: '/[a-z]*' + begin: '/', + end: '/[a-z]*' }, { - begin: '%r\\[', end: '\\][a-z]*' + begin: '%r\\[', + end: '\\][a-z]*' } ] } diff --git a/src/languages/elm.js b/src/languages/elm.js index 60e626a03e..5f163211a0 100644 --- a/src/languages/elm.js +++ b/src/languages/elm.js @@ -5,8 +5,9 @@ Website: https://elm-lang.org Category: functional */ +/** @type LanguageFn */ export default function(hljs) { - var COMMENT = { + const COMMENT = { variants: [ hljs.COMMENT('--', '$'), hljs.COMMENT( @@ -19,29 +20,35 @@ export default function(hljs) { ] }; - var CONSTRUCTOR = { + const CONSTRUCTOR = { className: 'type', begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (built-in, infix). relevance: 0 }; - var LIST = { - begin: '\\(', end: '\\)', + const LIST = { + begin: '\\(', + end: '\\)', illegal: '"', contains: [ - {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'}, + { + className: 'type', + begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?' + }, COMMENT ] }; - var RECORD = { - begin: /\{/, end: /\}/, + const RECORD = { + begin: /\{/, + end: /\}/, contains: LIST.contains }; - var CHARACTER = { + const CHARACTER = { className: 'string', - begin: '\'\\\\?.', end: '\'', + begin: '\'\\\\?.', + end: '\'', illegal: '.' }; @@ -55,28 +62,47 @@ export default function(hljs) { // Top-level constructions. { - beginKeywords: 'port effect module', end: 'exposing', + beginKeywords: 'port effect module', + end: 'exposing', keywords: 'port effect module where command subscription exposing', - contains: [LIST, COMMENT], + contains: [ + LIST, + COMMENT + ], illegal: '\\W\\.|;' }, { - begin: 'import', end: '$', + begin: 'import', + end: '$', keywords: 'import as exposing', - contains: [LIST, COMMENT], + contains: [ + LIST, + COMMENT + ], illegal: '\\W\\.|;' }, { - begin: 'type', end: '$', + begin: 'type', + end: '$', keywords: 'type alias', - contains: [CONSTRUCTOR, LIST, RECORD, COMMENT] + contains: [ + CONSTRUCTOR, + LIST, + RECORD, + COMMENT + ] }, { - beginKeywords: 'infix infixl infixr', end: '$', - contains: [hljs.C_NUMBER_MODE, COMMENT] + beginKeywords: 'infix infixl infixr', + end: '$', + contains: [ + hljs.C_NUMBER_MODE, + COMMENT + ] }, { - begin: 'port', end: '$', + begin: 'port', + end: '$', keywords: 'port', contains: [COMMENT] }, @@ -87,10 +113,14 @@ export default function(hljs) { hljs.QUOTE_STRING_MODE, hljs.C_NUMBER_MODE, CONSTRUCTOR, - hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}), + hljs.inherit(hljs.TITLE_MODE, { + begin: '^[_a-z][\\w\']*' + }), COMMENT, - {begin: '->|<-'} // No markup, relevance booster + { + begin: '->|<-' + } // No markup, relevance booster ], illegal: /;/ }; diff --git a/src/languages/erb.js b/src/languages/erb.js index 297ca15666..02cf17fdb7 100644 --- a/src/languages/erb.js +++ b/src/languages/erb.js @@ -8,6 +8,7 @@ Website: https://ruby-doc.org/stdlib-2.6.5/libdoc/erb/rdoc/ERB.html Category: template */ +/** @type LanguageFn */ export default function(hljs) { return { name: 'ERB', @@ -15,7 +16,8 @@ export default function(hljs) { contains: [ hljs.COMMENT('<%#', '%>'), { - begin: '<%[%=-]?', end: '[%-]?%>', + begin: '<%[%=-]?', + end: '[%-]?%>', subLanguage: 'ruby', excludeBegin: true, excludeEnd: true diff --git a/src/languages/erlang-repl.js b/src/languages/erlang-repl.js index 5d1e6679e9..df3eecf83b 100644 --- a/src/languages/erlang-repl.js +++ b/src/languages/erlang-repl.js @@ -5,6 +5,7 @@ Website: https://www.erlang.org Category: functional */ +/** @type LanguageFn */ export default function(hljs) { return { name: 'Erlang REPL', @@ -17,7 +18,8 @@ export default function(hljs) { }, contains: [ { - className: 'meta', begin: '^[0-9]+> ', + className: 'meta', + begin: '^[0-9]+> ', relevance: 10 }, hljs.COMMENT('%', '$'), diff --git a/src/languages/erlang.js b/src/languages/erlang.js index d507dbef84..1ec4d7c5f4 100644 --- a/src/languages/erlang.js +++ b/src/languages/erlang.js @@ -6,10 +6,11 @@ Website: https://www.erlang.org Category: functional */ +/** @type LanguageFn */ export default function(hljs) { - var BASIC_ATOM_RE = '[a-z\'][a-zA-Z0-9_\']*'; - var FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')'; - var ERLANG_RESERVED = { + const BASIC_ATOM_RE = '[a-z\'][a-zA-Z0-9_\']*'; + const FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')'; + const ERLANG_RESERVED = { keyword: 'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if ' + 'let not of orelse|10 query receive rem try when xor', @@ -17,45 +18,50 @@ export default function(hljs) { 'false true' }; - var COMMENT = hljs.COMMENT('%', '$'); - var NUMBER = { + const COMMENT = hljs.COMMENT('%', '$'); + const NUMBER = { className: 'number', begin: '\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)', relevance: 0 }; - var NAMED_FUN = { + const NAMED_FUN = { begin: 'fun\\s+' + BASIC_ATOM_RE + '/\\d+' }; - var FUNCTION_CALL = { - begin: FUNCTION_NAME_RE + '\\(', end: '\\)', + const FUNCTION_CALL = { + begin: FUNCTION_NAME_RE + '\\(', + end: '\\)', returnBegin: true, relevance: 0, contains: [ { - begin: FUNCTION_NAME_RE, relevance: 0 + begin: FUNCTION_NAME_RE, + relevance: 0 }, { - begin: '\\(', end: '\\)', endsWithParent: true, + begin: '\\(', + end: '\\)', + endsWithParent: true, returnEnd: true, relevance: 0 // "contains" defined later } ] }; - var TUPLE = { - begin: /\{/, end: /\}/, + const TUPLE = { + begin: /\{/, + end: /\}/, relevance: 0 // "contains" defined later }; - var VAR1 = { + const VAR1 = { begin: '\\b_([A-Z][A-Za-z0-9_]*)?', relevance: 0 }; - var VAR2 = { + const VAR2 = { begin: '[A-Z][a-zA-Z0-9_]*', relevance: 0 }; - var RECORD_ACCESS = { + const RECORD_ACCESS = { begin: '#' + hljs.UNDERSCORE_IDENT_RE, relevance: 0, returnBegin: true, @@ -65,31 +71,36 @@ export default function(hljs) { relevance: 0 }, { - begin: /\{/, end: /\}/, + begin: /\{/, + end: /\}/, relevance: 0 // "contains" defined later } ] }; - var BLOCK_STATEMENTS = { - beginKeywords: 'fun receive if try case', end: 'end', + const BLOCK_STATEMENTS = { + beginKeywords: 'fun receive if try case', + end: 'end', keywords: ERLANG_RESERVED }; BLOCK_STATEMENTS.contains = [ COMMENT, NAMED_FUN, - hljs.inherit(hljs.APOS_STRING_MODE, {className: ''}), + hljs.inherit(hljs.APOS_STRING_MODE, { + className: '' + }), BLOCK_STATEMENTS, FUNCTION_CALL, hljs.QUOTE_STRING_MODE, NUMBER, TUPLE, - VAR1, VAR2, + VAR1, + VAR2, RECORD_ACCESS ]; - var BASIC_MODES = [ + const BASIC_MODES = [ COMMENT, NAMED_FUN, BLOCK_STATEMENTS, @@ -97,16 +108,18 @@ export default function(hljs) { hljs.QUOTE_STRING_MODE, NUMBER, TUPLE, - VAR1, VAR2, + VAR1, + VAR2, RECORD_ACCESS ]; FUNCTION_CALL.contains[1].contains = BASIC_MODES; TUPLE.contains = BASIC_MODES; RECORD_ACCESS.contains[1].contains = BASIC_MODES; - var PARAMS = { + const PARAMS = { className: 'params', - begin: '\\(', end: '\\)', + begin: '\\(', + end: '\\)', contains: BASIC_MODES }; return { @@ -117,12 +130,15 @@ export default function(hljs) { contains: [ { className: 'function', - begin: '^' + BASIC_ATOM_RE + '\\s*\\(', end: '->', + begin: '^' + BASIC_ATOM_RE + '\\s*\\(', + end: '->', returnBegin: true, illegal: '\\(|#|//|/\\*|\\\\|:|;', contains: [ PARAMS, - hljs.inherit(hljs.TITLE_MODE, {begin: BASIC_ATOM_RE}) + hljs.inherit(hljs.TITLE_MODE, { + begin: BASIC_ATOM_RE + }) ], starts: { end: ';|\\.', @@ -132,7 +148,8 @@ export default function(hljs) { }, COMMENT, { - begin: '^-', end: '\\.', + begin: '^-', + end: '\\.', relevance: 0, excludeEnd: true, returnBegin: true, @@ -147,9 +164,12 @@ export default function(hljs) { NUMBER, hljs.QUOTE_STRING_MODE, RECORD_ACCESS, - VAR1, VAR2, + VAR1, + VAR2, TUPLE, - {begin: /\.$/} // relevance booster + { + begin: /\.$/ + } // relevance booster ] }; } diff --git a/src/languages/excel.js b/src/languages/excel.js index 9ce2df2677..a7169db050 100644 --- a/src/languages/excel.js +++ b/src/languages/excel.js @@ -5,21 +5,27 @@ Description: Excel formulae Website: https://products.office.com/en-us/excel/ */ +/** @type LanguageFn */ export default function(hljs) { return { name: 'Excel formulae', - aliases: ['xlsx', 'xls'], + aliases: [ + 'xlsx', + 'xls' + ], case_insensitive: true, // built-in functions imported from https://web.archive.org/web/20160513042710/https://support.office.com/en-us/article/Excel-functions-alphabetical-b3944572-255d-4efb-bb96-c6d90033e188 keywords: { - $pattern: /[a-zA-Z][\w\.]*/, - built_in: 'ABS ACCRINT ACCRINTM ACOS ACOSH ACOT ACOTH AGGREGATE ADDRESS AMORDEGRC AMORLINC AND ARABIC AREAS ASC ASIN ASINH ATAN ATAN2 ATANH AVEDEV AVERAGE AVERAGEA AVERAGEIF AVERAGEIFS BAHTTEXT BASE BESSELI BESSELJ BESSELK BESSELY BETADIST BETA.DIST BETAINV BETA.INV BIN2DEC BIN2HEX BIN2OCT BINOMDIST BINOM.DIST BINOM.DIST.RANGE BINOM.INV BITAND BITLSHIFT BITOR BITRSHIFT BITXOR CALL CEILING CEILING.MATH CEILING.PRECISE CELL CHAR CHIDIST CHIINV CHITEST CHISQ.DIST CHISQ.DIST.RT CHISQ.INV CHISQ.INV.RT CHISQ.TEST CHOOSE CLEAN CODE COLUMN COLUMNS COMBIN COMBINA COMPLEX CONCAT CONCATENATE CONFIDENCE CONFIDENCE.NORM CONFIDENCE.T CONVERT CORREL COS COSH COT COTH COUNT COUNTA COUNTBLANK COUNTIF COUNTIFS COUPDAYBS COUPDAYS COUPDAYSNC COUPNCD COUPNUM COUPPCD COVAR COVARIANCE.P COVARIANCE.S CRITBINOM CSC CSCH CUBEKPIMEMBER CUBEMEMBER CUBEMEMBERPROPERTY CUBERANKEDMEMBER CUBESET CUBESETCOUNT CUBEVALUE CUMIPMT CUMPRINC DATE DATEDIF DATEVALUE DAVERAGE DAY DAYS DAYS360 DB DBCS DCOUNT DCOUNTA DDB DEC2BIN DEC2HEX DEC2OCT DECIMAL DEGREES DELTA DEVSQ DGET DISC DMAX DMIN DOLLAR DOLLARDE DOLLARFR DPRODUCT DSTDEV DSTDEVP DSUM DURATION DVAR DVARP EDATE EFFECT ENCODEURL EOMONTH ERF ERF.PRECISE ERFC ERFC.PRECISE ERROR.TYPE EUROCONVERT EVEN EXACT EXP EXPON.DIST EXPONDIST FACT FACTDOUBLE FALSE|0 F.DIST FDIST F.DIST.RT FILTERXML FIND FINDB F.INV F.INV.RT FINV FISHER FISHERINV FIXED FLOOR FLOOR.MATH FLOOR.PRECISE FORECAST FORECAST.ETS FORECAST.ETS.CONFINT FORECAST.ETS.SEASONALITY FORECAST.ETS.STAT FORECAST.LINEAR FORMULATEXT FREQUENCY F.TEST FTEST FV FVSCHEDULE GAMMA GAMMA.DIST GAMMADIST GAMMA.INV GAMMAINV GAMMALN GAMMALN.PRECISE GAUSS GCD GEOMEAN GESTEP GETPIVOTDATA GROWTH HARMEAN HEX2BIN HEX2DEC HEX2OCT HLOOKUP HOUR HYPERLINK HYPGEOM.DIST HYPGEOMDIST IF IFERROR IFNA IFS IMABS IMAGINARY IMARGUMENT IMCONJUGATE IMCOS IMCOSH IMCOT IMCSC IMCSCH IMDIV IMEXP IMLN IMLOG10 IMLOG2 IMPOWER IMPRODUCT IMREAL IMSEC IMSECH IMSIN IMSINH IMSQRT IMSUB IMSUM IMTAN INDEX INDIRECT INFO INT INTERCEPT INTRATE IPMT IRR ISBLANK ISERR ISERROR ISEVEN ISFORMULA ISLOGICAL ISNA ISNONTEXT ISNUMBER ISODD ISREF ISTEXT ISO.CEILING ISOWEEKNUM ISPMT JIS KURT LARGE LCM LEFT LEFTB LEN LENB LINEST LN LOG LOG10 LOGEST LOGINV LOGNORM.DIST LOGNORMDIST LOGNORM.INV LOOKUP LOWER MATCH MAX MAXA MAXIFS MDETERM MDURATION MEDIAN MID MIDBs MIN MINIFS MINA MINUTE MINVERSE MIRR MMULT MOD MODE MODE.MULT MODE.SNGL MONTH MROUND MULTINOMIAL MUNIT N NA NEGBINOM.DIST NEGBINOMDIST NETWORKDAYS NETWORKDAYS.INTL NOMINAL NORM.DIST NORMDIST NORMINV NORM.INV NORM.S.DIST NORMSDIST NORM.S.INV NORMSINV NOT NOW NPER NPV NUMBERVALUE OCT2BIN OCT2DEC OCT2HEX ODD ODDFPRICE ODDFYIELD ODDLPRICE ODDLYIELD OFFSET OR PDURATION PEARSON PERCENTILE.EXC PERCENTILE.INC PERCENTILE PERCENTRANK.EXC PERCENTRANK.INC PERCENTRANK PERMUT PERMUTATIONA PHI PHONETIC PI PMT POISSON.DIST POISSON POWER PPMT PRICE PRICEDISC PRICEMAT PROB PRODUCT PROPER PV QUARTILE QUARTILE.EXC QUARTILE.INC QUOTIENT RADIANS RAND RANDBETWEEN RANK.AVG RANK.EQ RANK RATE RECEIVED REGISTER.ID REPLACE REPLACEB REPT RIGHT RIGHTB ROMAN ROUND ROUNDDOWN ROUNDUP ROW ROWS RRI RSQ RTD SEARCH SEARCHB SEC SECH SECOND SERIESSUM SHEET SHEETS SIGN SIN SINH SKEW SKEW.P SLN SLOPE SMALL SQL.REQUEST SQRT SQRTPI STANDARDIZE STDEV STDEV.P STDEV.S STDEVA STDEVP STDEVPA STEYX SUBSTITUTE SUBTOTAL SUM SUMIF SUMIFS SUMPRODUCT SUMSQ SUMX2MY2 SUMX2PY2 SUMXMY2 SWITCH SYD T TAN TANH TBILLEQ TBILLPRICE TBILLYIELD T.DIST T.DIST.2T T.DIST.RT TDIST TEXT TEXTJOIN TIME TIMEVALUE T.INV T.INV.2T TINV TODAY TRANSPOSE TREND TRIM TRIMMEAN TRUE|0 TRUNC T.TEST TTEST TYPE UNICHAR UNICODE UPPER VALUE VAR VAR.P VAR.S VARA VARP VARPA VDB VLOOKUP WEBSERVICE WEEKDAY WEEKNUM WEIBULL WEIBULL.DIST WORKDAY WORKDAY.INTL XIRR XNPV XOR YEAR YEARFRAC YIELD YIELDDISC YIELDMAT Z.TEST ZTEST' + $pattern: /[a-zA-Z][\w\.]*/, + built_in: 'ABS ACCRINT ACCRINTM ACOS ACOSH ACOT ACOTH AGGREGATE ADDRESS AMORDEGRC AMORLINC AND ARABIC AREAS ASC ASIN ASINH ATAN ATAN2 ATANH AVEDEV AVERAGE AVERAGEA AVERAGEIF AVERAGEIFS BAHTTEXT BASE BESSELI BESSELJ BESSELK BESSELY BETADIST BETA.DIST BETAINV BETA.INV BIN2DEC BIN2HEX BIN2OCT BINOMDIST BINOM.DIST BINOM.DIST.RANGE BINOM.INV BITAND BITLSHIFT BITOR BITRSHIFT BITXOR CALL CEILING CEILING.MATH CEILING.PRECISE CELL CHAR CHIDIST CHIINV CHITEST CHISQ.DIST CHISQ.DIST.RT CHISQ.INV CHISQ.INV.RT CHISQ.TEST CHOOSE CLEAN CODE COLUMN COLUMNS COMBIN COMBINA COMPLEX CONCAT CONCATENATE CONFIDENCE CONFIDENCE.NORM CONFIDENCE.T CONVERT CORREL COS COSH COT COTH COUNT COUNTA COUNTBLANK COUNTIF COUNTIFS COUPDAYBS COUPDAYS COUPDAYSNC COUPNCD COUPNUM COUPPCD COVAR COVARIANCE.P COVARIANCE.S CRITBINOM CSC CSCH CUBEKPIMEMBER CUBEMEMBER CUBEMEMBERPROPERTY CUBERANKEDMEMBER CUBESET CUBESETCOUNT CUBEVALUE CUMIPMT CUMPRINC DATE DATEDIF DATEVALUE DAVERAGE DAY DAYS DAYS360 DB DBCS DCOUNT DCOUNTA DDB DEC2BIN DEC2HEX DEC2OCT DECIMAL DEGREES DELTA DEVSQ DGET DISC DMAX DMIN DOLLAR DOLLARDE DOLLARFR DPRODUCT DSTDEV DSTDEVP DSUM DURATION DVAR DVARP EDATE EFFECT ENCODEURL EOMONTH ERF ERF.PRECISE ERFC ERFC.PRECISE ERROR.TYPE EUROCONVERT EVEN EXACT EXP EXPON.DIST EXPONDIST FACT FACTDOUBLE FALSE|0 F.DIST FDIST F.DIST.RT FILTERXML FIND FINDB F.INV F.INV.RT FINV FISHER FISHERINV FIXED FLOOR FLOOR.MATH FLOOR.PRECISE FORECAST FORECAST.ETS FORECAST.ETS.CONFINT FORECAST.ETS.SEASONALITY FORECAST.ETS.STAT FORECAST.LINEAR FORMULATEXT FREQUENCY F.TEST FTEST FV FVSCHEDULE GAMMA GAMMA.DIST GAMMADIST GAMMA.INV GAMMAINV GAMMALN GAMMALN.PRECISE GAUSS GCD GEOMEAN GESTEP GETPIVOTDATA GROWTH HARMEAN HEX2BIN HEX2DEC HEX2OCT HLOOKUP HOUR HYPERLINK HYPGEOM.DIST HYPGEOMDIST IF IFERROR IFNA IFS IMABS IMAGINARY IMARGUMENT IMCONJUGATE IMCOS IMCOSH IMCOT IMCSC IMCSCH IMDIV IMEXP IMLN IMLOG10 IMLOG2 IMPOWER IMPRODUCT IMREAL IMSEC IMSECH IMSIN IMSINH IMSQRT IMSUB IMSUM IMTAN INDEX INDIRECT INFO INT INTERCEPT INTRATE IPMT IRR ISBLANK ISERR ISERROR ISEVEN ISFORMULA ISLOGICAL ISNA ISNONTEXT ISNUMBER ISODD ISREF ISTEXT ISO.CEILING ISOWEEKNUM ISPMT JIS KURT LARGE LCM LEFT LEFTB LEN LENB LINEST LN LOG LOG10 LOGEST LOGINV LOGNORM.DIST LOGNORMDIST LOGNORM.INV LOOKUP LOWER MATCH MAX MAXA MAXIFS MDETERM MDURATION MEDIAN MID MIDBs MIN MINIFS MINA MINUTE MINVERSE MIRR MMULT MOD MODE MODE.MULT MODE.SNGL MONTH MROUND MULTINOMIAL MUNIT N NA NEGBINOM.DIST NEGBINOMDIST NETWORKDAYS NETWORKDAYS.INTL NOMINAL NORM.DIST NORMDIST NORMINV NORM.INV NORM.S.DIST NORMSDIST NORM.S.INV NORMSINV NOT NOW NPER NPV NUMBERVALUE OCT2BIN OCT2DEC OCT2HEX ODD ODDFPRICE ODDFYIELD ODDLPRICE ODDLYIELD OFFSET OR PDURATION PEARSON PERCENTILE.EXC PERCENTILE.INC PERCENTILE PERCENTRANK.EXC PERCENTRANK.INC PERCENTRANK PERMUT PERMUTATIONA PHI PHONETIC PI PMT POISSON.DIST POISSON POWER PPMT PRICE PRICEDISC PRICEMAT PROB PRODUCT PROPER PV QUARTILE QUARTILE.EXC QUARTILE.INC QUOTIENT RADIANS RAND RANDBETWEEN RANK.AVG RANK.EQ RANK RATE RECEIVED REGISTER.ID REPLACE REPLACEB REPT RIGHT RIGHTB ROMAN ROUND ROUNDDOWN ROUNDUP ROW ROWS RRI RSQ RTD SEARCH SEARCHB SEC SECH SECOND SERIESSUM SHEET SHEETS SIGN SIN SINH SKEW SKEW.P SLN SLOPE SMALL SQL.REQUEST SQRT SQRTPI STANDARDIZE STDEV STDEV.P STDEV.S STDEVA STDEVP STDEVPA STEYX SUBSTITUTE SUBTOTAL SUM SUMIF SUMIFS SUMPRODUCT SUMSQ SUMX2MY2 SUMX2PY2 SUMXMY2 SWITCH SYD T TAN TANH TBILLEQ TBILLPRICE TBILLYIELD T.DIST T.DIST.2T T.DIST.RT TDIST TEXT TEXTJOIN TIME TIMEVALUE T.INV T.INV.2T TINV TODAY TRANSPOSE TREND TRIM TRIMMEAN TRUE|0 TRUNC T.TEST TTEST TYPE UNICHAR UNICODE UPPER VALUE VAR VAR.P VAR.S VARA VARP VARPA VDB VLOOKUP WEBSERVICE WEEKDAY WEEKNUM WEIBULL WEIBULL.DIST WORKDAY WORKDAY.INTL XIRR XNPV XOR YEAR YEARFRAC YIELD YIELDDISC YIELDMAT Z.TEST ZTEST' }, contains: [ { /* matches a beginning equal sign found in Excel formula examples */ begin: /^=/, - end: /[^=]/, returnEnd: true, illegal: /=/, /* only allow single equal sign at front of line */ + end: /[^=]/, + returnEnd: true, + illegal: /=/, /* only allow single equal sign at front of line */ relevance: 10 }, /* technically, there can be more than 2 letters in column names, but this prevents conflict with some keywords */ @@ -27,7 +33,8 @@ export default function(hljs) { /* matches a reference to a single cell */ className: 'symbol', begin: /\b[A-Z]{1,2}\d+\b/, - end: /[^\d]/, excludeEnd: true, + end: /[^\d]/, + excludeEnd: true, relevance: 0 }, { @@ -44,12 +51,12 @@ export default function(hljs) { relevance: 0 }, /* Excel formula comments are done by putting the comment in a function call to N() */ - hljs.COMMENT(/\bN\(/,/\)/, - { - excludeBegin: true, - excludeEnd: true, - illegal: /\n/ - }) + hljs.COMMENT(/\bN\(/, /\)/, + { + excludeBegin: true, + excludeEnd: true, + illegal: /\n/ + }) ] }; } diff --git a/src/languages/fix.js b/src/languages/fix.js index fe4d3444e9..340fce9464 100644 --- a/src/languages/fix.js +++ b/src/languages/fix.js @@ -3,31 +3,32 @@ Language: FIX Author: Brent Bradbury */ +/** @type LanguageFn */ export default function(hljs) { return { name: 'FIX', - contains: [ - { + contains: [{ begin: /[^\u2401\u0001]+/, end: /[\u2401\u0001]/, excludeEnd: true, returnBegin: true, returnEnd: false, contains: [ - { - begin: /([^\u2401\u0001=]+)/, - end: /=([^\u2401\u0001=]+)/, - returnEnd: true, - returnBegin: false, - className: 'attr' - }, - { - begin: /=/, - end: /([\u2401\u0001])/, - excludeEnd: true, - excludeBegin: true, - className: 'string' - }] + { + begin: /([^\u2401\u0001=]+)/, + end: /=([^\u2401\u0001=]+)/, + returnEnd: true, + returnBegin: false, + className: 'attr' + }, + { + begin: /=/, + end: /([\u2401\u0001])/, + excludeEnd: true, + excludeBegin: true, + className: 'string' + } + ] }], case_insensitive: true }; diff --git a/src/languages/flix.js b/src/languages/flix.js index a1ae6d286a..639212a9d9 100644 --- a/src/languages/flix.js +++ b/src/languages/flix.js @@ -5,48 +5,47 @@ Website: https://flix.dev/ */ -export default function (hljs) { + /** @type LanguageFn */ +export default function(hljs) { + const CHAR = { + className: 'string', + begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/ + }; - var CHAR = { - className: 'string', - begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/ - }; + const STRING = { + className: 'string', + variants: [{ + begin: '"', + end: '"' + }] + }; - var STRING = { - className: 'string', - variants: [ - { - begin: '"', end: '"' - } - ] - }; + const NAME = { + className: 'title', + begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/ + }; - var NAME = { - className: 'title', - begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/ - }; + const METHOD = { + className: 'function', + beginKeywords: 'def', + end: /[:={\[(\n;]/, + excludeEnd: true, + contains: [NAME] + }; - var METHOD = { - className: 'function', - beginKeywords: 'def', - end: /[:={\[(\n;]/, - excludeEnd: true, - contains: [NAME] - }; - - return { - name: 'Flix', - keywords: { - literal: 'true false', - keyword: 'case class def else enum if impl import in lat rel index let match namespace switch type yield with' - }, - contains: [ - hljs.C_LINE_COMMENT_MODE, - hljs.C_BLOCK_COMMENT_MODE, - CHAR, - STRING, - METHOD, - hljs.C_NUMBER_MODE - ] - }; + return { + name: 'Flix', + keywords: { + literal: 'true false', + keyword: 'case class def else enum if impl import in lat rel index let match namespace switch type yield with' + }, + contains: [ + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + CHAR, + STRING, + METHOD, + hljs.C_NUMBER_MODE + ] + }; } diff --git a/src/languages/fortran.js b/src/languages/fortran.js index 86a27b9f01..3a1c3b74bf 100644 --- a/src/languages/fortran.js +++ b/src/languages/fortran.js @@ -5,18 +5,26 @@ Website: https://en.wikipedia.org/wiki/Fortran Category: scientific */ +/** @type LanguageFn */ export default function(hljs) { const PARAMS = { className: 'params', - begin: '\\(', end: '\\)' + begin: '\\(', + end: '\\)' }; const COMMENT = { variants: [ - hljs.COMMENT('!', '$', {relevance: 0}), + hljs.COMMENT('!', '$', { + relevance: 0 + }), // allow FORTRAN 77 style comments - hljs.COMMENT('^C[ ]', '$', {relevance: 0}), - hljs.COMMENT('^C$', '$', {relevance: 0}) + hljs.COMMENT('^C[ ]', '$', { + relevance: 0 + }), + hljs.COMMENT('^C$', '$', { + relevance: 0 + }) ] }; @@ -31,7 +39,10 @@ export default function(hljs) { className: 'function', beginKeywords: 'subroutine function program', illegal: '[${=\\n]', - contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS] + contains: [ + hljs.UNDERSCORE_TITLE_MODE, + PARAMS + ] }; const STRING = { @@ -78,7 +89,7 @@ export default function(hljs) { 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' + 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' + 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' + - 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of ' + + 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of ' + 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' + 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' + 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' + @@ -87,7 +98,10 @@ export default function(hljs) { return { name: 'Fortran', case_insensitive: true, - aliases: ['f90', 'f95'], + aliases: [ + 'f90', + 'f95' + ], keywords: KEYWORDS, illegal: /\/\*/, contains: [ @@ -97,7 +111,7 @@ export default function(hljs) { // as Fortran 77 style comments { begin: /^C\s*=(?!=)/, - relevance: 0, + relevance: 0 }, COMMENT, NUMBER diff --git a/src/languages/fsharp.js b/src/languages/fsharp.js index 25298a3f15..fd94969fba 100644 --- a/src/languages/fsharp.js +++ b/src/languages/fsharp.js @@ -39,9 +39,11 @@ export default function(hljs) { className: 'string', begin: '@"', end: '"', - contains: [{ - begin: '""' - }] + contains: [ + { + begin: '""' + } + ] }, { className: 'string', @@ -70,12 +72,12 @@ export default function(hljs) { { className: 'symbol', begin: '\\B(\'[A-Za-z])\\b', - contains: [ - hljs.BACKSLASH_ESCAPE - ] + contains: [hljs.BACKSLASH_ESCAPE] }, hljs.C_LINE_COMMENT_MODE, - hljs.inherit(hljs.QUOTE_STRING_MODE, { illegal: null }), + hljs.inherit(hljs.QUOTE_STRING_MODE, { + illegal: null + }), hljs.C_NUMBER_MODE ] }; From de3987a3d97746c356c9e22089c18a6f0eff4075 Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Thu, 12 Nov 2020 11:56:21 -0500 Subject: [PATCH 3/7] G-L --- .eslintrc.js | 6 +- src/languages/gams.js | 72 ++++--- src/languages/gauss.js | 114 +++++----- src/languages/gcode.js | 131 ++++++------ src/languages/gherkin.js | 11 +- src/languages/glsl.js | 5 +- src/languages/gml.js | 7 +- src/languages/go.js | 19 +- src/languages/golo.js | 31 +-- src/languages/gradle.js | 2 +- src/languages/handlebars.js | 53 +++-- src/languages/haskell.js | 113 ++++++---- src/languages/haxe.js | 131 +++++++----- src/languages/hsp.js | 18 +- src/languages/htmlbars.js | 10 +- src/languages/inform7.js | 18 +- src/languages/ini.js | 78 ++++--- src/languages/irpf90.js | 32 ++- src/languages/isbl.js | 354 +++++++++++++++++--------------- src/languages/jboss-cli.js | 30 +-- src/languages/json.js | 39 ++-- src/languages/kotlin.js | 148 ++++++++----- src/languages/lasso.js | 54 +++-- src/languages/ldif.js | 21 +- src/languages/leaf.js | 9 +- src/languages/livecodeserver.js | 43 ++-- src/languages/livescript.js | 102 ++++++--- src/languages/lua.js | 30 +-- 28 files changed, 1028 insertions(+), 653 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index fb7e96f3d5..3d7e7b9bf1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -61,12 +61,14 @@ module.exports = { "no-control-regex": 0, "no-useless-escape": 0, "comma-dangle": 1, - // "array-bracket-spacing": ["error","always", + "array-bracket-spacing": ["error", "always" // { // objectsInArrays: true - // }], + // } + ], // "object-curly-spacing": 1, // "key-spacing": "off", + // "array-bracket-spacing": [1], "array-bracket-newline": [1, { multiline: true, minItems: 2 diff --git a/src/languages/gams.js b/src/languages/gams.js index 0aeb0c23ad..2fceeff5a7 100644 --- a/src/languages/gams.js +++ b/src/languages/gams.js @@ -8,15 +8,16 @@ Category: scientific */ -export default function (hljs) { - var KEYWORDS = { +export default function(hljs) { + const KEYWORDS = { keyword: 'abort acronym acronyms alias all and assign binary card diag display ' + 'else eq file files for free ge gt if integer le loop lt maximizing ' + 'minimizing model models ne negative no not option options or ord ' + 'positive prod put putpage puttl repeat sameas semicont semiint smax ' + 'smin solve sos1 sos2 sum system table then until using while xor yes', - literal: 'eps inf na', + literal: + 'eps inf na', built_in: 'abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy ' + 'cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact ' + @@ -33,29 +34,40 @@ export default function (hljs) { 'licenseLevel licenseStatus maxExecError sleep timeClose timeComp ' + 'timeElapsed timeExec timeStart' }; - var PARAMS = { + const PARAMS = { className: 'params', - begin: /\(/, end: /\)/, + begin: /\(/, + end: /\)/, excludeBegin: true, - excludeEnd: true, + excludeEnd: true }; - var SYMBOLS = { + const SYMBOLS = { className: 'symbol', variants: [ - {begin: /=[lgenxc]=/}, - {begin: /\$/}, + { + begin: /=[lgenxc]=/ + }, + { + begin: /\$/ + } ] }; - var QSTR = { // One-line quoted comment string + const QSTR = { // One-line quoted comment string className: 'comment', variants: [ - {begin: '\'', end: '\''}, - {begin: '"', end: '"'}, + { + begin: '\'', + end: '\'' + }, + { + begin: '"', + end: '"' + } ], illegal: '\\n', contains: [hljs.BACKSLASH_ESCAPE] }; - var ASSIGNMENT = { + const ASSIGNMENT = { begin: '/', end: '/', keywords: KEYWORDS, @@ -65,10 +77,10 @@ export default function (hljs) { hljs.C_BLOCK_COMMENT_MODE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, - hljs.C_NUMBER_MODE, - ], + hljs.C_NUMBER_MODE + ] }; - var DESCTEXT = { // Parameter/set/variable description text + const DESCTEXT = { // Parameter/set/variable description text begin: /[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/, excludeBegin: true, end: '$', @@ -80,8 +92,8 @@ export default function (hljs) { className: 'comment', begin: /([ ]*[a-z0-9&#*=?@\\><:,()$[\]_.{}!+%^-]+)+/, relevance: 0 - }, - ], + } + ] }; return { @@ -99,7 +111,7 @@ export default function (hljs) { contains: [ { className: 'meta-keyword', - begin: '^\\$[a-z0-9]+', + begin: '^\\$[a-z0-9]+' } ] }, @@ -121,7 +133,7 @@ export default function (hljs) { hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, ASSIGNMENT, - DESCTEXT, + DESCTEXT ] }, { // table environment @@ -132,14 +144,14 @@ export default function (hljs) { { // table header row beginKeywords: 'table', end: '$', - contains: [DESCTEXT], + contains: [DESCTEXT] }, hljs.COMMENT('^\\*', '$'), hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, - hljs.C_NUMBER_MODE, + hljs.C_NUMBER_MODE // Table does not contain DESCTEXT or ASSIGNMENT ] }, @@ -149,16 +161,16 @@ export default function (hljs) { begin: /^[a-z][a-z0-9_,\-+' ()$]+\.{2}/, returnBegin: true, contains: [ - { // Function title - className: 'title', - begin: /^[a-z0-9_]+/, - }, - PARAMS, - SYMBOLS, - ], + { // Function title + className: 'title', + begin: /^[a-z0-9_]+/ + }, + PARAMS, + SYMBOLS + ] }, hljs.C_NUMBER_MODE, - SYMBOLS, + SYMBOLS ] }; } diff --git a/src/languages/gauss.js b/src/languages/gauss.js index 391bab0a37..3099521bdd 100644 --- a/src/languages/gauss.js +++ b/src/languages/gauss.js @@ -6,8 +6,8 @@ Website: https://www.aptech.com Category: scientific */ export default function(hljs) { - var KEYWORDS = { - keyword: 'bool break call callexe checkinterrupt clear clearg closeall cls comlog compile ' + + const KEYWORDS = { + keyword: 'bool break call callexe checkinterrupt clear clearg closeall cls comlog compile ' + 'continue create debug declare delete disable dlibrary dllcall do dos ed edit else ' + 'elseif enable end endfor endif endp endo errorlog errorlogat expr external fn ' + 'for format goto gosub graph if keyword let lib library line load loadarray loadexe ' + @@ -109,36 +109,43 @@ export default function(hljs) { 'DB_TRANSACTIONS DB_UNICODE DB_VIEWS __STDIN __STDOUT __STDERR __FILE_DIR' }; + const AT_COMMENT_MODE = hljs.COMMENT('@', '@'); - var AT_COMMENT_MODE = hljs.COMMENT('@', '@'); - - var PREPROCESSOR = + const PREPROCESSOR = { className: 'meta', - begin: '#', end: '$', - keywords: {'meta-keyword': 'define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline'}, + begin: '#', + end: '$', + keywords: { + 'meta-keyword': 'define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline' + }, contains: [ { - begin: /\\\n/, relevance: 0 + begin: /\\\n/, + relevance: 0 }, { - beginKeywords: 'include', end: '$', - keywords: {'meta-keyword': 'include'}, + beginKeywords: 'include', + end: '$', + keywords: { + 'meta-keyword': 'include' + }, contains: [ { className: 'meta-string', - begin: '"', end: '"', + begin: '"', + end: '"', illegal: '\\n' } ] }, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, - AT_COMMENT_MODE, + AT_COMMENT_MODE ] }; - var STRUCT_TYPE = + const STRUCT_TYPE = { begin: /\bstruct\s+/, end: /\s/, @@ -147,16 +154,17 @@ export default function(hljs) { { className: "type", begin: hljs.UNDERSCORE_IDENT_RE, - relevance: 0, - }, - ], + relevance: 0 + } + ] }; // only for definitions - var PARSE_PARAMS = [ + const PARSE_PARAMS = [ { className: 'params', - begin: /\(/, end: /\)/, + begin: /\(/, + end: /\)/, excludeBegin: true, excludeEnd: true, endsWithParent: true, @@ -164,31 +172,31 @@ export default function(hljs) { contains: [ { // dots className: 'literal', - begin: /\.\.\./, + begin: /\.\.\./ }, hljs.C_NUMBER_MODE, hljs.C_BLOCK_COMMENT_MODE, AT_COMMENT_MODE, - STRUCT_TYPE, + STRUCT_TYPE ] } ]; - var FUNCTION_DEF = + const FUNCTION_DEF = { className: "title", begin: hljs.UNDERSCORE_IDENT_RE, - relevance: 0, + relevance: 0 }; - var DEFINITION = function (beginKeywords, end, inherits) { - var mode = hljs.inherit( + const DEFINITION = function(beginKeywords, end, inherits) { + const mode = hljs.inherit( { className: "function", beginKeywords: beginKeywords, end: end, excludeEnd: true, - contains: [].concat(PARSE_PARAMS), + contains: [].concat(PARSE_PARAMS) }, inherits || {} ); @@ -199,47 +207,51 @@ export default function(hljs) { return mode; }; - var BUILT_IN_REF = + const BUILT_IN_REF = { // these are explicitly named internal function calls className: 'built_in', - begin: '\\b(' + KEYWORDS.built_in.split(' ').join('|') + ')\\b', + begin: '\\b(' + KEYWORDS.built_in.split(' ').join('|') + ')\\b' }; - var STRING_REF = + const STRING_REF = { className: 'string', - begin: '"', end: '"', + begin: '"', + end: '"', contains: [hljs.BACKSLASH_ESCAPE], - relevance: 0, + relevance: 0 }; - var FUNCTION_REF = + const FUNCTION_REF = { - //className: "fn_ref", + // className: "fn_ref", begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, keywords: KEYWORDS, relevance: 0, contains: [ { - beginKeywords: KEYWORDS.keyword, + beginKeywords: KEYWORDS.keyword }, BUILT_IN_REF, { // ambiguously named function calls get a relevance of 0 className: 'built_in', begin: hljs.UNDERSCORE_IDENT_RE, - relevance: 0, - }, - ], + relevance: 0 + } + ] }; - var FUNCTION_REF_PARAMS = + const FUNCTION_REF_PARAMS = { - //className: "fn_ref_params", + // className: "fn_ref_params", begin: /\(/, end: /\)/, relevance: 0, - keywords: { built_in: KEYWORDS.built_in, literal: KEYWORDS.literal }, + keywords: { + built_in: KEYWORDS.built_in, + literal: KEYWORDS.literal + }, contains: [ hljs.C_NUMBER_MODE, hljs.C_BLOCK_COMMENT_MODE, @@ -247,8 +259,8 @@ export default function(hljs) { BUILT_IN_REF, FUNCTION_REF, STRING_REF, - 'self', - ], + 'self' + ] }; FUNCTION_REF.contains.push(FUNCTION_REF_PARAMS); @@ -268,31 +280,35 @@ export default function(hljs) { PREPROCESSOR, { className: 'keyword', - begin: /\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/, + begin: /\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/ }, DEFINITION('proc keyword', ';'), DEFINITION('fn', '='), { beginKeywords: 'for threadfor', end: /;/, - //end: /\(/, + // end: /\(/, relevance: 0, contains: [ hljs.C_BLOCK_COMMENT_MODE, AT_COMMENT_MODE, - FUNCTION_REF_PARAMS, - ], + FUNCTION_REF_PARAMS + ] }, { // custom method guard // excludes method names from keyword processing variants: [ - { begin: hljs.UNDERSCORE_IDENT_RE + '\\.' + hljs.UNDERSCORE_IDENT_RE, }, - { begin: hljs.UNDERSCORE_IDENT_RE + '\\s*=', }, + { + begin: hljs.UNDERSCORE_IDENT_RE + '\\.' + hljs.UNDERSCORE_IDENT_RE + }, + { + begin: hljs.UNDERSCORE_IDENT_RE + '\\s*=' + } ], - relevance: 0, + relevance: 0 }, FUNCTION_REF, - STRUCT_TYPE, + STRUCT_TYPE ] }; } diff --git a/src/languages/gcode.js b/src/languages/gcode.js index 2e6c70a85f..cdac312c64 100644 --- a/src/languages/gcode.js +++ b/src/languages/gcode.js @@ -6,70 +6,77 @@ */ export default function(hljs) { - var GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*'; - var GCODE_CLOSE_RE = '%'; - var GCODE_KEYWORDS = { - $pattern: GCODE_IDENT_RE, - keyword: 'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT ' + + const GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*'; + const GCODE_CLOSE_RE = '%'; + const GCODE_KEYWORDS = { + $pattern: GCODE_IDENT_RE, + keyword: 'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT ' + 'EQ LT GT NE GE LE OR XOR' - }; - var GCODE_START = { - className: 'meta', - begin: '([O])([0-9]+)' - }; - var GCODE_CODE = [ - hljs.C_LINE_COMMENT_MODE, - hljs.C_BLOCK_COMMENT_MODE, - hljs.COMMENT(/\(/, /\)/), - hljs.inherit(hljs.C_NUMBER_MODE, {begin: '([-+]?([0-9]*\\.?[0-9]+\\.?))|' + hljs.C_NUMBER_RE}), - hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}), - hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}), - { - className: 'name', - begin: '([G])([0-9]+\\.?[0-9]?)' - }, - { - className: 'name', - begin: '([M])([0-9]+\\.?[0-9]?)' - }, - { - className: 'attr', - begin: '(VC|VS|#)', - end: '(\\d+)' - }, + }; + const GCODE_START = { + className: 'meta', + begin: '([O])([0-9]+)' + }; + const GCODE_CODE = [ + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + hljs.COMMENT(/\(/, /\)/), + hljs.inherit(hljs.C_NUMBER_MODE, { + begin: '([-+]?([0-9]*\\.?[0-9]+\\.?))|' + hljs.C_NUMBER_RE + }), + hljs.inherit(hljs.APOS_STRING_MODE, { + illegal: null + }), + hljs.inherit(hljs.QUOTE_STRING_MODE, { + illegal: null + }), + { + className: 'name', + begin: '([G])([0-9]+\\.?[0-9]?)' + }, + { + className: 'name', + begin: '([M])([0-9]+\\.?[0-9]?)' + }, + { + className: 'attr', + begin: '(VC|VS|#)', + end: '(\\d+)' + }, + { + className: 'attr', + begin: '(VZOFX|VZOFY|VZOFZ)' + }, + { + className: 'built_in', + begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)', + end: '([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])' + }, + { + className: 'symbol', + variants: [ { - className: 'attr', - begin: '(VZOFX|VZOFY|VZOFZ)' - }, - { - className: 'built_in', - begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)', - end: '([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])' - }, - { - className: 'symbol', - variants: [ - { - begin: 'N', end: '\\d+', - illegal: '\\W' - } - ] + begin: 'N', + end: '\\d+', + illegal: '\\W' } - ]; + ] + } + ]; - return { - name: 'G-code (ISO 6983)', - aliases: ['nc'], - // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly. - // However, most prefer all uppercase and uppercase is customary. - case_insensitive: true, - keywords: GCODE_KEYWORDS, - contains: [ - { - className: 'meta', - begin: GCODE_CLOSE_RE - }, - GCODE_START - ].concat(GCODE_CODE) - }; + return { + name: 'G-code (ISO 6983)', + aliases: ['nc'], + // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly. + // However, most prefer all uppercase and uppercase is customary. + case_insensitive: true, + keywords: GCODE_KEYWORDS, + contains: [ + { + className: 'meta', + begin: GCODE_CLOSE_RE + }, + GCODE_START + ].concat(GCODE_CODE) + }; } diff --git a/src/languages/gherkin.js b/src/languages/gherkin.js index 9de8b11472..8c558abf23 100644 --- a/src/languages/gherkin.js +++ b/src/languages/gherkin.js @@ -5,7 +5,7 @@ Website: https://cucumber.io/docs/gherkin/ */ -export default function (hljs) { +export default function(hljs) { return { name: 'Gherkin', aliases: ['feature'], @@ -21,7 +21,8 @@ export default function (hljs) { begin: '@[^@\\s]+' }, { - begin: '\\|', end: '\\|\\w*$', + begin: '\\|', + end: '\\|\\w*$', contains: [ { className: 'string', @@ -31,12 +32,14 @@ export default function (hljs) { }, { className: 'variable', - begin: '<', end: '>' + begin: '<', + end: '>' }, hljs.HASH_COMMENT_MODE, { className: 'string', - begin: '"""', end: '"""' + begin: '"""', + end: '"""' }, hljs.QUOTE_STRING_MODE ] diff --git a/src/languages/glsl.js b/src/languages/glsl.js index bf417a2d3e..c7bfa085bb 100644 --- a/src/languages/glsl.js +++ b/src/languages/glsl.js @@ -19,7 +19,7 @@ export default function(hljs) { 'flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant ' + 'invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y ' + 'local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left ' + - 'out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f '+ + 'out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f ' + 'r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict ' + 'rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 ' + 'rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 ' + @@ -118,7 +118,8 @@ export default function(hljs) { hljs.C_NUMBER_MODE, { className: 'meta', - begin: '#', end: '$' + begin: '#', + end: '$' } ] }; diff --git a/src/languages/gml.js b/src/languages/gml.js index 1042d2b1da..e4326ccdbd 100644 --- a/src/languages/gml.js +++ b/src/languages/gml.js @@ -7,7 +7,7 @@ Category: scripting */ export default function(hljs) { - var GML_KEYWORDS = { + const GML_KEYWORDS = { keyword: 'begin end if then else while do for break continue with until ' + 'repeat exit and or xor not return mod div switch case default var ' + 'globalvar enum #macro #region #endregion', @@ -866,7 +866,10 @@ export default function(hljs) { return { name: 'GML', - aliases: ['gml', 'GML'], + aliases: [ + 'gml', + 'GML' + ], case_insensitive: false, // language is case-insensitive keywords: GML_KEYWORDS, diff --git a/src/languages/go.js b/src/languages/go.js index 7244a662f8..925ad421f4 100644 --- a/src/languages/go.js +++ b/src/languages/go.js @@ -8,7 +8,7 @@ Category: common, system */ export default function(hljs) { - var GO_KEYWORDS = { + const GO_KEYWORDS = { keyword: 'break default func interface select case map struct chan else goto package switch ' + 'const fallthrough if range type continue for import return var go defer ' + @@ -32,13 +32,19 @@ export default function(hljs) { variants: [ hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, - {begin: '`', end: '`'}, + { + begin: '`', + end: '`' + } ] }, { className: 'number', variants: [ - {begin: hljs.C_NUMBER_RE + '[i]', relevance: 1}, + { + begin: hljs.C_NUMBER_RE + '[i]', + relevance: 1 + }, hljs.C_NUMBER_MODE ] }, @@ -47,12 +53,15 @@ export default function(hljs) { }, { className: 'function', - beginKeywords: 'func', end: '\\s*(\\{|$)', excludeEnd: true, + beginKeywords: 'func', + end: '\\s*(\\{|$)', + excludeEnd: true, contains: [ hljs.TITLE_MODE, { className: 'params', - begin: /\(/, end: /\)/, + begin: /\(/, + end: /\)/, keywords: GO_KEYWORDS, illegal: /["']/ } diff --git a/src/languages/golo.js b/src/languages/golo.js index 5389b1807d..9de228053b 100644 --- a/src/languages/golo.js +++ b/src/languages/golo.js @@ -6,25 +6,26 @@ Website: http://golo-lang.org/ */ export default function(hljs) { - return { - name: 'Golo', - keywords: { - keyword: + return { + name: 'Golo', + keywords: { + keyword: 'println readln print import module function local return let var ' + 'while for foreach times in case when match with break continue ' + 'augment augmentation each find filter reduce ' + 'if then else otherwise try catch finally raise throw orIfNull ' + 'DynamicObject|10 DynamicVariable struct Observable map set vector list array', - literal: + literal: 'true false null' - }, - contains: [ - hljs.HASH_COMMENT_MODE, - hljs.QUOTE_STRING_MODE, - hljs.C_NUMBER_MODE, - { - className: 'meta', begin: '@[A-Za-z]+' - } - ] - } + }, + contains: [ + hljs.HASH_COMMENT_MODE, + hljs.QUOTE_STRING_MODE, + hljs.C_NUMBER_MODE, + { + className: 'meta', + begin: '@[A-Za-z]+' + } + ] + }; } diff --git a/src/languages/gradle.js b/src/languages/gradle.js index 8cce34b2c6..cdca7587bb 100644 --- a/src/languages/gradle.js +++ b/src/languages/gradle.js @@ -38,5 +38,5 @@ export default function(hljs) { hljs.REGEXP_MODE ] - } + }; } diff --git a/src/languages/handlebars.js b/src/languages/handlebars.js index a1ed102941..092662504d 100644 --- a/src/languages/handlebars.js +++ b/src/languages/handlebars.js @@ -7,7 +7,7 @@ Website: https://handlebarsjs.com Category: template */ -import * as regex from '../lib/regex.js' +import * as regex from '../lib/regex.js'; export default function(hljs) { const BUILT_INS = { @@ -57,11 +57,11 @@ export default function(hljs) { // this regex matches literal segments like ' abc ' or [ abc ] as well as helpers and paths // like a/b, ./abc/cde, and abc.bcd - const DOUBLE_QUOTED_ID_REGEX=/".*?"/; - const SINGLE_QUOTED_ID_REGEX=/'.*?'/; - const BRACKET_QUOTED_ID_REGEX=/\[.*?\]/; - const PLAIN_ID_REGEX=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/; - const PATH_DELIMITER_REGEX=/\.|\//; + const DOUBLE_QUOTED_ID_REGEX = /".*?"/; + const SINGLE_QUOTED_ID_REGEX = /'.*?'/; + const BRACKET_QUOTED_ID_REGEX = /\[.*?\]/; + const PLAIN_ID_REGEX = /[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/; + const PATH_DELIMITER_REGEX = /\.|\//; const IDENTIFIER_REGEX = regex.concat( '(', @@ -119,7 +119,9 @@ export default function(hljs) { const BLOCK_PARAMS = { // parameters of the form '{{#with x as | y |}}...{{/with}}' begin: /as\s+\|/, - keywords: { keyword: 'as' }, + keywords: { + keyword: 'as' + }, end: /\|/, contains: [ { @@ -149,19 +151,17 @@ export default function(hljs) { className: 'name', keywords: BUILT_INS, starts: hljs.inherit(HELPER_PARAMETERS, { - end: /\)/, + end: /\)/ }) }); - SUB_EXPRESSION.contains = [ - SUB_EXPRESSION_CONTENTS - ]; + SUB_EXPRESSION.contains = [SUB_EXPRESSION_CONTENTS]; const OPENING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, { keywords: BUILT_INS, className: 'name', starts: hljs.inherit(HELPER_PARAMETERS, { - end: /\}\}/, + end: /\}\}/ }) }); @@ -174,16 +174,27 @@ export default function(hljs) { className: 'name', keywords: BUILT_INS, starts: hljs.inherit(HELPER_PARAMETERS, { - end: /\}\}/, + end: /\}\}/ }) }); - const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {begin: /\\\{\{/, skip: true}; - const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {begin: /\\\\(?=\{\{)/, skip: true}; + const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = { + begin: /\\\{\{/, + skip: true + }; + const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = { + begin: /\\\\(?=\{\{)/, + skip: true + }; return { name: 'Handlebars', - aliases: ['hbs', 'html.hbs', 'html.handlebars', 'htmlbars'], + aliases: [ + 'hbs', + 'html.hbs', + 'html.handlebars', + 'htmlbars' + ], case_insensitive: true, subLanguage: 'xml', contains: [ @@ -197,7 +208,11 @@ export default function(hljs) { begin: /\{\{\{\{(?!\/)/, end: /\}\}\}\}/, contains: [OPENING_BLOCK_MUSTACHE_CONTENTS], - starts: {end: /\{\{\{\{\//, returnEnd: true, subLanguage: 'xml'} + starts: { + end: /\{\{\{\{\//, + returnEnd: true, + subLanguage: 'xml' + } }, { // close raw block @@ -211,7 +226,7 @@ export default function(hljs) { className: 'template-tag', begin: /\{\{#/, end: /\}\}/, - contains: [OPENING_BLOCK_MUSTACHE_CONTENTS], + contains: [OPENING_BLOCK_MUSTACHE_CONTENTS] }, { className: 'template-tag', @@ -230,7 +245,7 @@ export default function(hljs) { className: 'template-tag', begin: /\{\{\//, end: /\}\}/, - contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS], + contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS] }, { // template variable or helper-call that is NOT html-escaped diff --git a/src/languages/haskell.js b/src/languages/haskell.js index 5c9417adc9..b9ddd36c6e 100644 --- a/src/languages/haskell.js +++ b/src/languages/haskell.js @@ -7,7 +7,7 @@ Category: functional */ export default function(hljs) { - var COMMENT = { + const COMMENT = { variants: [ hljs.COMMENT('--', '$'), hljs.COMMENT( @@ -20,36 +20,45 @@ export default function(hljs) { ] }; - var PRAGMA = { + const PRAGMA = { className: 'meta', - begin: /\{-#/, end: /#-\}/ + begin: /\{-#/, + end: /#-\}/ }; - var PREPROCESSOR = { + const PREPROCESSOR = { className: 'meta', - begin: '^#', end: '$' + begin: '^#', + end: '$' }; - var CONSTRUCTOR = { + const CONSTRUCTOR = { className: 'type', begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (build-in, infix). relevance: 0 }; - var LIST = { - begin: '\\(', end: '\\)', + const LIST = { + begin: '\\(', + end: '\\)', illegal: '"', contains: [ PRAGMA, PREPROCESSOR, - {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'}, - hljs.inherit(hljs.TITLE_MODE, {begin: '[_a-z][\\w\']*'}), + { + className: 'type', + begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?' + }, + hljs.inherit(hljs.TITLE_MODE, { + begin: '[_a-z][\\w\']*' + }), COMMENT ] }; - var RECORD = { - begin: /\{/, end: /\}/, + const RECORD = { + begin: /\{/, + end: /\}/, contains: LIST.contains }; @@ -62,55 +71,85 @@ export default function(hljs) { 'infix infixl infixr foreign export ccall stdcall cplusplus ' + 'jvm dotnet safe unsafe family forall mdo proc rec', contains: [ - // Top-level constructions. - { - beginKeywords: 'module', end: 'where', + beginKeywords: 'module', + end: 'where', keywords: 'module where', - contains: [LIST, COMMENT], + contains: [ + LIST, + COMMENT + ], illegal: '\\W\\.|;' }, { - begin: '\\bimport\\b', end: '$', + begin: '\\bimport\\b', + end: '$', keywords: 'import qualified as hiding', - contains: [LIST, COMMENT], + contains: [ + LIST, + COMMENT + ], illegal: '\\W\\.|;' }, - { className: 'class', - begin: '^(\\s*)?(class|instance)\\b', end: 'where', + begin: '^(\\s*)?(class|instance)\\b', + end: 'where', keywords: 'class family instance where', - contains: [CONSTRUCTOR, LIST, COMMENT] + contains: [ + CONSTRUCTOR, + LIST, + COMMENT + ] }, { className: 'class', - begin: '\\b(data|(new)?type)\\b', end: '$', + begin: '\\b(data|(new)?type)\\b', + end: '$', keywords: 'data family type newtype deriving', - contains: [PRAGMA, CONSTRUCTOR, LIST, RECORD, COMMENT] + contains: [ + PRAGMA, + CONSTRUCTOR, + LIST, + RECORD, + COMMENT + ] }, { - beginKeywords: 'default', end: '$', - contains: [CONSTRUCTOR, LIST, COMMENT] + beginKeywords: 'default', + end: '$', + contains: [ + CONSTRUCTOR, + LIST, + COMMENT + ] }, { - beginKeywords: 'infix infixl infixr', end: '$', - contains: [hljs.C_NUMBER_MODE, COMMENT] + beginKeywords: 'infix infixl infixr', + end: '$', + contains: [ + hljs.C_NUMBER_MODE, + COMMENT + ] }, { - begin: '\\bforeign\\b', end: '$', + begin: '\\bforeign\\b', + end: '$', keywords: 'foreign import export ccall stdcall cplusplus jvm ' + 'dotnet safe unsafe', - contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT] + contains: [ + CONSTRUCTOR, + hljs.QUOTE_STRING_MODE, + COMMENT + ] }, { className: 'meta', - begin: '#!\\/usr\\/bin\\/env\ runhaskell', end: '$' + begin: '#!\\/usr\\/bin\\/env\ runhaskell', + end: '$' }, - // "Whitespaces". - PRAGMA, PREPROCESSOR, @@ -120,11 +159,13 @@ export default function(hljs) { hljs.QUOTE_STRING_MODE, hljs.C_NUMBER_MODE, CONSTRUCTOR, - hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}), - + hljs.inherit(hljs.TITLE_MODE, { + begin: '^[_a-z][\\w\']*' + }), COMMENT, - - {begin: '->|<-'} // No markup, relevance booster + { // No markup, relevance booster + begin: '->|<-' + } ] }; } diff --git a/src/languages/haxe.js b/src/languages/haxe.js index 7c04449a02..4a4f72b4bb 100644 --- a/src/languages/haxe.js +++ b/src/languages/haxe.js @@ -7,10 +7,10 @@ Website: https://haxe.org */ export default function(hljs) { - var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*'; - var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)'; + const IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*'; + const IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)'; - var HAXE_BASIC_TYPES = 'Int Float String Bool Dynamic Void Array '; + const HAXE_BASIC_TYPES = 'Int Float String Bool Dynamic Void Array '; return { name: 'Haxe', @@ -26,15 +26,21 @@ export default function(hljs) { 'true false null _' }, contains: [ - { className: 'string', // interpolate-able strings - begin: '\'', end: '\'', + { + className: 'string', // interpolate-able strings + begin: '\'', + end: '\'', contains: [ hljs.BACKSLASH_ESCAPE, - { className: 'subst', // interpolation - begin: '\\$\\{', end: '\\}' + { + className: 'subst', // interpolation + begin: '\\$\\{', + end: '\\}' }, - { className: 'subst', // interpolation - begin: '\\$', end: /\W\}/ + { + className: 'subst', // interpolation + begin: '\\$', + end: /\W\}/ } ] }, @@ -42,46 +48,72 @@ export default function(hljs) { hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.C_NUMBER_MODE, - { className: 'meta', // compiler meta - begin: '@:', end: '$' + { + className: 'meta', // compiler meta + begin: '@:', + end: '$' }, - { className: 'meta', // compiler conditionals - begin: '#', end: '$', - keywords: {'meta-keyword': 'if else elseif end error'} + { + className: 'meta', // compiler conditionals + begin: '#', + end: '$', + keywords: { + 'meta-keyword': 'if else elseif end error' + } }, - { className: 'type', // function types - begin: ':[ \t]*', end: '[^A-Za-z0-9_ \t\\->]', - excludeBegin: true, excludeEnd: true, + { + className: 'type', // function types + begin: ':[ \t]*', + end: '[^A-Za-z0-9_ \t\\->]', + excludeBegin: true, + excludeEnd: true, relevance: 0 }, - { className: 'type', // types - begin: ':[ \t]*', end: '\\W', - excludeBegin: true, excludeEnd: true + { + className: 'type', // types + begin: ':[ \t]*', + end: '\\W', + excludeBegin: true, + excludeEnd: true }, - { className: 'type', // instantiation - begin: 'new *', end: '\\W', - excludeBegin: true, excludeEnd: true + { + className: 'type', // instantiation + begin: 'new *', + end: '\\W', + excludeBegin: true, + excludeEnd: true }, - { className: 'class', // enums - beginKeywords: 'enum', end: '\\{', - contains: [ - hljs.TITLE_MODE - ] + { + className: 'class', // enums + beginKeywords: 'enum', + end: '\\{', + contains: [hljs.TITLE_MODE] }, - { className: 'class', // abstracts - beginKeywords: 'abstract', end: '[\\{$]', + { + className: 'class', // abstracts + beginKeywords: 'abstract', + end: '[\\{$]', contains: [ - { className: 'type', - begin: '\\(', end: '\\)', - excludeBegin: true, excludeEnd: true + { + className: 'type', + begin: '\\(', + end: '\\)', + excludeBegin: true, + excludeEnd: true }, - { className: 'type', - begin: 'from +', end: '\\W', - excludeBegin: true, excludeEnd: true + { + className: 'type', + begin: 'from +', + end: '\\W', + excludeBegin: true, + excludeEnd: true }, - { className: 'type', - begin: 'to +', end: '\\W', - excludeBegin: true, excludeEnd: true + { + className: 'type', + begin: 'to +', + end: '\\W', + excludeBegin: true, + excludeEnd: true }, hljs.TITLE_MODE ], @@ -89,11 +121,15 @@ export default function(hljs) { keyword: 'abstract from to' } }, - { className: 'class', // classes - begin: '\\b(class|interface) +', end: '[\\{$]', excludeEnd: true, + { + className: 'class', // classes + begin: '\\b(class|interface) +', + end: '[\\{$]', + excludeEnd: true, keywords: 'class interface', contains: [ - { className: 'keyword', + { + className: 'keyword', begin: '\\b(extends|implements) +', keywords: 'extends implements', contains: [ @@ -107,12 +143,13 @@ export default function(hljs) { hljs.TITLE_MODE ] }, - { className: 'function', - beginKeywords: 'function', end: '\\(', excludeEnd: true, + { + className: 'function', + beginKeywords: 'function', + end: '\\(', + excludeEnd: true, illegal: '\\S', - contains: [ - hljs.TITLE_MODE - ] + contains: [hljs.TITLE_MODE] } ], illegal: /<\// diff --git a/src/languages/hsp.js b/src/languages/hsp.js index 3487a2d91a..68649b2ae3 100644 --- a/src/languages/hsp.js +++ b/src/languages/hsp.js @@ -22,19 +22,27 @@ export default function(hljs) { { // multi-line string className: 'string', - begin: /\{"/, end: /"\}/, + begin: /\{"/, + end: /"\}/, contains: [hljs.BACKSLASH_ESCAPE] }, - hljs.COMMENT(';', '$', {relevance: 0}), + hljs.COMMENT(';', '$', { + relevance: 0 + }), { // pre-processor className: 'meta', - begin: '#', end: '$', - keywords: {'meta-keyword': 'addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib'}, + begin: '#', + end: '$', + keywords: { + 'meta-keyword': 'addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib' + }, contains: [ - hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'meta-string'}), + hljs.inherit(hljs.QUOTE_STRING_MODE, { + className: 'meta-string' + }), hljs.NUMBER_MODE, hljs.C_NUMBER_MODE, hljs.C_LINE_COMMENT_MODE, diff --git a/src/languages/htmlbars.js b/src/languages/htmlbars.js index caca6d4dad..4a5dddd64b 100644 --- a/src/languages/htmlbars.js +++ b/src/languages/htmlbars.js @@ -19,12 +19,12 @@ TODO: Remove in version 11.0. */ // compile time dependency on handlebars -import handlebars from "./handlebars.js" +import handlebars from "./handlebars.js"; export default function(hljs) { - const definition = handlebars(hljs) + const definition = handlebars(hljs); - definition.name = "HTMLbars" + definition.name = "HTMLbars"; // HACK: This lets handlebars do the auto-detection if it's been loaded (by // default the build script will load in alphabetical order) and if not (perhaps @@ -35,8 +35,8 @@ export default function(hljs) { // content and will need to change their setup to only require handlebars, but // I don't consider this a breaking change if (hljs.getLanguage("handlebars")) { - definition.disableAutodetect = true + definition.disableAutodetect = true; } - return definition + return definition; } diff --git a/src/languages/inform7.js b/src/languages/inform7.js index f1c14646b1..ef4a0f0bd7 100644 --- a/src/languages/inform7.js +++ b/src/languages/inform7.js @@ -6,8 +6,8 @@ Website: http://inform7.com */ export default function(hljs) { - var START_BRACKET = '\\['; - var END_BRACKET = '\\]'; + const START_BRACKET = '\\['; + const END_BRACKET = '\\]'; return { name: 'Inform 7', aliases: ['i7'], @@ -28,12 +28,14 @@ export default function(hljs) { contains: [ { className: 'string', - begin: '"', end: '"', + begin: '"', + end: '"', relevance: 0, contains: [ { className: 'subst', - begin: START_BRACKET, end: END_BRACKET + begin: START_BRACKET, + end: END_BRACKET } ] }, @@ -49,14 +51,16 @@ export default function(hljs) { end: ':', contains: [ { - //Rule name - begin: '\\(This', end: '\\)' + // Rule name + begin: '\\(This', + end: '\\)' } ] }, { className: 'comment', - begin: START_BRACKET, end: END_BRACKET, + begin: START_BRACKET, + end: END_BRACKET, contains: ['self'] } ] diff --git a/src/languages/ini.js b/src/languages/ini.js index 32b9547053..d59c8635b5 100644 --- a/src/languages/ini.js +++ b/src/languages/ini.js @@ -9,42 +9,71 @@ Website: https://github.com/toml-lang/toml import * as regex from '../lib/regex.js'; export default function(hljs) { - var NUMBERS = { + const NUMBERS = { className: 'number', relevance: 0, variants: [ - { begin: /([+-]+)?[\d]+_[\d_]+/ }, - { begin: hljs.NUMBER_RE } + { + begin: /([+-]+)?[\d]+_[\d_]+/ + }, + { + begin: hljs.NUMBER_RE + } ] }; - var COMMENTS = hljs.COMMENT(); + const COMMENTS = hljs.COMMENT(); COMMENTS.variants = [ - {begin: /;/, end: /$/}, - {begin: /#/, end: /$/}, + { + begin: /;/, + end: /$/ + }, + { + begin: /#/, + end: /$/ + } ]; - var VARIABLES = { + const VARIABLES = { className: 'variable', variants: [ - { begin: /\$[\w\d"][\w\d_]*/ }, - { begin: /\$\{(.*?)\}/ } + { + begin: /\$[\w\d"][\w\d_]*/ + }, + { + begin: /\$\{(.*?)\}/ + } ] }; - var LITERALS = { + const LITERALS = { className: 'literal', begin: /\bon|off|true|false|yes|no\b/ }; - var STRINGS = { + const STRINGS = { className: "string", contains: [hljs.BACKSLASH_ESCAPE], variants: [ - { begin: "'''", end: "'''", relevance: 10 }, - { begin: '"""', end: '"""', relevance: 10 }, - { begin: '"', end: '"' }, - { begin: "'", end: "'" } + { + begin: "'''", + end: "'''", + relevance: 10 + }, + { + begin: '"""', + end: '"""', + relevance: 10 + }, + { + begin: '"', + end: '"' + }, + { + begin: "'", + end: "'" + } ] }; - var ARRAY = { - begin: /\[/, end: /\]/, + const ARRAY = { + begin: /\[/, + end: /\]/, contains: [ COMMENTS, LITERALS, @@ -53,16 +82,16 @@ export default function(hljs) { NUMBERS, 'self' ], - relevance:0 + relevance: 0 }; - var BARE_KEY = /[A-Za-z0-9_-]+/; - var QUOTED_KEY_DOUBLE_QUOTE = /"(\\"|[^"])*"/; - var QUOTED_KEY_SINGLE_QUOTE = /'[^']*'/; - var ANY_KEY = regex.either( + const BARE_KEY = /[A-Za-z0-9_-]+/; + const QUOTED_KEY_DOUBLE_QUOTE = /"(\\"|[^"])*"/; + const QUOTED_KEY_SINGLE_QUOTE = /'[^']*'/; + const ANY_KEY = regex.either( BARE_KEY, QUOTED_KEY_DOUBLE_QUOTE, QUOTED_KEY_SINGLE_QUOTE ); - var DOTTED_KEY = regex.concat( + const DOTTED_KEY = regex.concat( ANY_KEY, '(\\s*\\.\\s*', ANY_KEY, ')*', regex.lookahead(/\s*=\s*[^#\s]/) ); @@ -76,7 +105,8 @@ export default function(hljs) { COMMENTS, { className: 'section', - begin: /\[+/, end: /\]+/ + begin: /\[+/, + end: /\]+/ }, { begin: DOTTED_KEY, diff --git a/src/languages/irpf90.js b/src/languages/irpf90.js index 877f246066..76ef4bcb1f 100644 --- a/src/languages/irpf90.js +++ b/src/languages/irpf90.js @@ -7,12 +7,13 @@ Category: scientific */ export default function(hljs) { - var PARAMS = { + const PARAMS = { className: 'params', - begin: '\\(', end: '\\)' + begin: '\\(', + end: '\\)' }; - var F_KEYWORDS = { + const F_KEYWORDS = { literal: '.False. .True.', keyword: 'kind do while private call intrinsic where elsewhere ' + 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' + @@ -50,7 +51,7 @@ export default function(hljs) { 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' + 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' + 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' + - 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of ' + + 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of ' + 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' + 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' + 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' + @@ -64,16 +65,29 @@ export default function(hljs) { keywords: F_KEYWORDS, illegal: /\/\*/, contains: [ - hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}), - hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}), + hljs.inherit(hljs.APOS_STRING_MODE, { + className: 'string', + relevance: 0 + }), + hljs.inherit(hljs.QUOTE_STRING_MODE, { + className: 'string', + relevance: 0 + }), { className: 'function', beginKeywords: 'subroutine function program', illegal: '[${=\\n]', - contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS] + contains: [ + hljs.UNDERSCORE_TITLE_MODE, + PARAMS + ] }, - hljs.COMMENT('!', '$', {relevance: 0}), - hljs.COMMENT('begin_doc', 'end_doc', {relevance: 10}), + hljs.COMMENT('!', '$', { + relevance: 0 + }), + hljs.COMMENT('begin_doc', 'end_doc', { + relevance: 10 + }), { className: 'number', // regex in both fortran and irpf90 should match diff --git a/src/languages/isbl.js b/src/languages/isbl.js index 33e5287c7d..8eb2dc85b5 100644 --- a/src/languages/isbl.js +++ b/src/languages/isbl.js @@ -7,18 +7,18 @@ Category: enterprise export default function(hljs) { // Определение идентификаторов - var UNDERSCORE_IDENT_RE = "[A-Za-zА-Яа-яёЁ_!][A-Za-zА-Яа-яёЁ_0-9]*"; + const UNDERSCORE_IDENT_RE = "[A-Za-zА-Яа-яёЁ_!][A-Za-zА-Яа-яёЁ_0-9]*"; // Определение имен функций - var FUNCTION_NAME_IDENT_RE = "[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]*"; + const FUNCTION_NAME_IDENT_RE = "[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]*"; // keyword : ключевые слова - var KEYWORD = + const KEYWORD = "and и else иначе endexcept endfinally endforeach конецвсе endif конецесли endwhile конецпока " + "except exitfor finally foreach все if если in в not не or или try while пока "; // SYSRES Constants - var sysres_constants = + const sysres_constants = "SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT " + "SYSRES_CONST_ACCES_RIGHT_TYPE_FULL " + "SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW " + @@ -795,24 +795,24 @@ export default function(hljs) { "SYSRES_CONST_YES_VALUE "; // Base constant - var base_constants = "CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE "; + const base_constants = "CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE "; // Base group name - var base_group_name_constants = + const base_group_name_constants = "ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME "; // Decision block properties - var decision_block_properties_constants = + const decision_block_properties_constants = "DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY " + "DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY "; // File extension - var file_extension_constants = + const file_extension_constants = "ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION " + "SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION "; // Job block properties - var job_block_properties_constants = + const job_block_properties_constants = "JOB_BLOCK_ABORT_DEADLINE_PROPERTY " + "JOB_BLOCK_AFTER_FINISH_EVENT " + "JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT " + @@ -836,14 +836,14 @@ export default function(hljs) { "JOB_BLOCK_SUBJECT_PROPERTY "; // Language code - var language_code_constants = "ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE "; + const language_code_constants = "ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE "; // Launching external applications - var launching_external_applications_constants = + const launching_external_applications_constants = "smHidden smMaximized smMinimized smNormal wmNo wmYes "; // Link kind - var link_kind_constants = + const link_kind_constants = "COMPONENT_TOKEN_LINK_KIND " + "DOCUMENT_LINK_KIND " + "EDOCUMENT_LINK_KIND " + @@ -853,11 +853,11 @@ export default function(hljs) { "TASK_LINK_KIND "; // Lock type - var lock_type_constants = + const lock_type_constants = "COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE "; // Monitor block properties - var monitor_block_properties_constants = + const monitor_block_properties_constants = "MONITOR_BLOCK_AFTER_FINISH_EVENT " + "MONITOR_BLOCK_BEFORE_START_EVENT " + "MONITOR_BLOCK_DEADLINE_PROPERTY " + @@ -869,7 +869,7 @@ export default function(hljs) { "MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY "; // Notice block properties - var notice_block_properties_constants = + const notice_block_properties_constants = "NOTICE_BLOCK_AFTER_FINISH_EVENT " + "NOTICE_BLOCK_ATTACHMENT_PROPERTY " + "NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " + @@ -885,7 +885,7 @@ export default function(hljs) { "NOTICE_BLOCK_SUBJECT_PROPERTY "; // Object events - var object_events_constants = + const object_events_constants = "dseAfterCancel " + "dseAfterClose " + "dseAfterDelete " + @@ -917,13 +917,13 @@ export default function(hljs) { "SELECTION_END_ROUTE_EVENT "; // Object params - var object_params_constants = + const object_params_constants = "CURRENT_PERIOD_IS_REQUIRED " + "PREVIOUS_CARD_TYPE_NAME " + "SHOW_RECORD_PROPERTIES_FORM "; // Other - var other_constants = + const other_constants = "ACCESS_RIGHTS_SETTING_DIALOG_CODE " + "ADMINISTRATOR_USER_CODE " + "ANALYTIC_REPORT_TYPE " + @@ -992,7 +992,7 @@ export default function(hljs) { "REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME "; // Privileges - var privileges_constants = + const privileges_constants = "PRIVILEGE_COMPONENT_FULL_ACCESS " + "PRIVILEGE_DEVELOPMENT_EXPORT " + "PRIVILEGE_DEVELOPMENT_IMPORT " + @@ -1013,7 +1013,7 @@ export default function(hljs) { "PRIVILEGES_PSEUDOREFERENCE_CODE "; // Pseudoreference code - var pseudoreference_code_constants = + const pseudoreference_code_constants = "ACCESS_TYPES_PSEUDOREFERENCE_CODE " + "ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE " + "ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE " + @@ -1035,27 +1035,27 @@ export default function(hljs) { "VIEWERS_PSEUDOREFERENCE_CODE "; // Requisite ISBCertificateType values - var requisite_ISBCertificateType_values_constants = + const requisite_ISBCertificateType_values_constants = "CERTIFICATE_TYPE_ENCRYPT " + "CERTIFICATE_TYPE_SIGN " + "CERTIFICATE_TYPE_SIGN_AND_ENCRYPT "; // Requisite ISBEDocStorageType values - var requisite_ISBEDocStorageType_values_constants = + const requisite_ISBEDocStorageType_values_constants = "STORAGE_TYPE_FILE " + "STORAGE_TYPE_NAS_CIFS " + "STORAGE_TYPE_SAPERION " + "STORAGE_TYPE_SQL_SERVER "; // Requisite CompType2 values - var requisite_compType2_values_constants = + const requisite_compType2_values_constants = "COMPTYPE2_REQUISITE_DOCUMENTS_VALUE " + "COMPTYPE2_REQUISITE_TASKS_VALUE " + "COMPTYPE2_REQUISITE_FOLDERS_VALUE " + "COMPTYPE2_REQUISITE_REFERENCES_VALUE "; // Requisite name - var requisite_name_constants = + const requisite_name_constants = "SYSREQ_CODE " + "SYSREQ_COMPTYPE2 " + "SYSREQ_CONST_AVAILABLE_FOR_WEB " + @@ -1268,10 +1268,10 @@ export default function(hljs) { "SYSREQ_WORK_RULES_FOLDER_ID "; // Result - var result_constants = "RESULT_VAR_NAME RESULT_VAR_NAME_ENG "; + const result_constants = "RESULT_VAR_NAME RESULT_VAR_NAME_ENG "; // Rule identification - var rule_identification_constants = + const rule_identification_constants = "AUTO_NUMERATION_RULE_ID " + "CANT_CHANGE_ID_REQUISITE_RULE_ID " + "CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID " + @@ -1293,7 +1293,7 @@ export default function(hljs) { "SET_OURFIRM_REQUISITE_RULE_ID "; // Script block properties - var script_block_properties_constants = + const script_block_properties_constants = "SCRIPT_BLOCK_AFTER_FINISH_EVENT " + "SCRIPT_BLOCK_BEFORE_START_EVENT " + "SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY " + @@ -1301,7 +1301,7 @@ export default function(hljs) { "SCRIPT_BLOCK_SCRIPT_PROPERTY "; // Subtask block properties - var subtask_block_properties_constants = + const subtask_block_properties_constants = "SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY " + "SUBTASK_BLOCK_AFTER_FINISH_EVENT " + "SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT " + @@ -1334,7 +1334,7 @@ export default function(hljs) { "SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY "; // System component - var system_component_constants = + const system_component_constants = "SYSCOMP_CONTROL_JOBS " + "SYSCOMP_FOLDERS " + "SYSCOMP_JOBS " + @@ -1342,7 +1342,7 @@ export default function(hljs) { "SYSCOMP_TASKS "; // System dialogs - var system_dialogs_constants = + const system_dialogs_constants = "SYSDLG_CREATE_EDOCUMENT " + "SYSDLG_CREATE_EDOCUMENT_VERSION " + "SYSDLG_CURRENT_PERIOD " + @@ -1363,7 +1363,7 @@ export default function(hljs) { "SYSDLG_SIGN_MULTIPLE_EDOCUMENTS "; // System reference names - var system_reference_names_constants = + const system_reference_names_constants = "SYSREF_ACCESS_RIGHTS_TYPES " + "SYSREF_ADMINISTRATION_HISTORY " + "SYSREF_ALL_AVAILABLE_COMPONENTS " + @@ -1443,13 +1443,13 @@ export default function(hljs) { "SYSREF_WORKING_TIME_CALENDARS "; // Table name - var table_name_constants = + const table_name_constants = "ACCESS_RIGHTS_TABLE_NAME " + "EDMS_ACCESS_TABLE_NAME " + "EDOC_TYPES_TABLE_NAME "; // Test - var test_constants = + const test_constants = "TEST_DEV_DB_NAME " + "TEST_DEV_SYSTEM_CODE " + "TEST_EDMS_DB_NAME " + @@ -1464,7 +1464,7 @@ export default function(hljs) { "TEST_SQL_SERVER_NAME "; // Using the dialog windows - var using_the_dialog_windows_constants = + const using_the_dialog_windows_constants = "ATTENTION_CAPTION " + "cbsCommandLinks " + "cbsDefault " + @@ -1475,13 +1475,13 @@ export default function(hljs) { "mrOk "; // Using the document - var using_the_document_constants = + const using_the_document_constants = "EDOC_VERSION_ACTIVE_STAGE_CODE " + "EDOC_VERSION_DESIGN_STAGE_CODE " + "EDOC_VERSION_OBSOLETE_STAGE_CODE "; // Using the EA and encryption - var using_the_EA_and_encryption_constants = + const using_the_EA_and_encryption_constants = "cpDataEnciphermentEnabled " + "cpDigitalSignatureEnabled " + "cpID " + @@ -1494,11 +1494,11 @@ export default function(hljs) { "cpValidToDate "; // Using the ISBL-editor - var using_the_ISBL_editor_constants = + const using_the_ISBL_editor_constants = "ISBL_SYNTAX " + "NO_SYNTAX " + "XML_SYNTAX "; // Wait block properties - var wait_block_properties_constants = + const wait_block_properties_constants = "WAIT_BLOCK_AFTER_FINISH_EVENT " + "WAIT_BLOCK_BEFORE_START_EVENT " + "WAIT_BLOCK_DEADLINE_PROPERTY " + @@ -1507,7 +1507,7 @@ export default function(hljs) { "WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY "; // SYSRES Common - var sysres_common_constants = + const sysres_common_constants = "SYSRES_COMMON " + "SYSRES_CONST " + "SYSRES_MBFUNC " + @@ -1519,7 +1519,7 @@ export default function(hljs) { "SYSRES_SYSCOMP "; // Константы ==> built_in - var CONSTANTS = + const CONSTANTS = sysres_constants + base_constants + base_group_name_constants + @@ -1558,10 +1558,10 @@ export default function(hljs) { sysres_common_constants; // enum TAccountType - var TAccountType = "atUser atGroup atRole "; + const TAccountType = "atUser atGroup atRole "; // enum TActionEnabledMode - var TActionEnabledMode = + const TActionEnabledMode = "aemEnabledAlways " + "aemDisabledAlways " + "aemEnabledOnBrowse " + @@ -1569,13 +1569,13 @@ export default function(hljs) { "aemDisabledOnBrowseEmpty "; // enum TAddPosition - var TAddPosition = "apBegin apEnd "; + const TAddPosition = "apBegin apEnd "; // enum TAlignment - var TAlignment = "alLeft alRight "; + const TAlignment = "alLeft alRight "; // enum TAreaShowMode - var TAreaShowMode = + const TAreaShowMode = "asmNever " + "asmNoButCustomize " + "asmAsLastTime " + @@ -1583,19 +1583,19 @@ export default function(hljs) { "asmAlways "; // enum TCertificateInvalidationReason - var TCertificateInvalidationReason = "cirCommon cirRevoked "; + const TCertificateInvalidationReason = "cirCommon cirRevoked "; // enum TCertificateType - var TCertificateType = "ctSignature ctEncode ctSignatureEncode "; + const TCertificateType = "ctSignature ctEncode ctSignatureEncode "; // enum TCheckListBoxItemState - var TCheckListBoxItemState = "clbUnchecked clbChecked clbGrayed "; + const TCheckListBoxItemState = "clbUnchecked clbChecked clbGrayed "; // enum TCloseOnEsc - var TCloseOnEsc = "ceISB ceAlways ceNever "; + const TCloseOnEsc = "ceISB ceAlways ceNever "; // enum TCompType - var TCompType = + const TCompType = "ctDocument " + "ctReference " + "ctScript " + @@ -1611,13 +1611,13 @@ export default function(hljs) { "ctControlJob "; // enum TConditionFormat - var TConditionFormat = "cfInternal cfDisplay "; + const TConditionFormat = "cfInternal cfDisplay "; // enum TConnectionIntent - var TConnectionIntent = "ciUnspecified ciWrite ciRead "; + const TConnectionIntent = "ciUnspecified ciWrite ciRead "; // enum TContentKind - var TContentKind = + const TContentKind = "ckFolder " + "ckEDocument " + "ckTask " + @@ -1630,7 +1630,7 @@ export default function(hljs) { "ckDialog "; // enum TControlType - var TControlType = + const TControlType = "ctISBLEditor " + "ctBevel " + "ctButton " + @@ -1667,7 +1667,7 @@ export default function(hljs) { "ctBitButton "; // enum TCriterionContentType - var TCriterionContentType = + const TCriterionContentType = "cctDate " + "cctInteger " + "cctNumeric " + @@ -1677,10 +1677,10 @@ export default function(hljs) { "cctText "; // enum TCultureType - var TCultureType = "cltInternal cltPrimary cltGUI "; + const TCultureType = "cltInternal cltPrimary cltGUI "; // enum TDataSetEventType - var TDataSetEventType = + const TDataSetEventType = "dseBeforeOpen " + "dseAfterOpen " + "dseBeforeClose " + @@ -1709,25 +1709,25 @@ export default function(hljs) { "dseOnAnyRequisiteChange "; // enum TDataSetState - var TDataSetState = "dssEdit dssInsert dssBrowse dssInActive "; + const TDataSetState = "dssEdit dssInsert dssBrowse dssInActive "; // enum TDateFormatType - var TDateFormatType = "dftDate dftShortDate dftDateTime dftTimeStamp "; + const TDateFormatType = "dftDate dftShortDate dftDateTime dftTimeStamp "; // enum TDateOffsetType - var TDateOffsetType = "dotDays dotHours dotMinutes dotSeconds "; + const TDateOffsetType = "dotDays dotHours dotMinutes dotSeconds "; // enum TDateTimeKind - var TDateTimeKind = "dtkndLocal dtkndUTC "; + const TDateTimeKind = "dtkndLocal dtkndUTC "; // enum TDeaAccessRights - var TDeaAccessRights = "arNone arView arEdit arFull "; + const TDeaAccessRights = "arNone arView arEdit arFull "; // enum TDocumentDefaultAction - var TDocumentDefaultAction = "ddaView ddaEdit "; + const TDocumentDefaultAction = "ddaView ddaEdit "; // enum TEditMode - var TEditMode = + const TEditMode = "emLock " + "emEdit " + "emSign " + @@ -1776,47 +1776,47 @@ export default function(hljs) { "emReEncode "; // enum TEditorCloseObservType - var TEditorCloseObservType = "ecotFile ecotProcess "; + const TEditorCloseObservType = "ecotFile ecotProcess "; // enum TEdmsApplicationAction - var TEdmsApplicationAction = "eaGet eaCopy eaCreate eaCreateStandardRoute "; + const TEdmsApplicationAction = "eaGet eaCopy eaCreate eaCreateStandardRoute "; // enum TEDocumentLockType - var TEDocumentLockType = "edltAll edltNothing edltQuery "; + const TEDocumentLockType = "edltAll edltNothing edltQuery "; // enum TEDocumentStepShowMode - var TEDocumentStepShowMode = "essmText essmCard "; + const TEDocumentStepShowMode = "essmText essmCard "; // enum TEDocumentStepVersionType - var TEDocumentStepVersionType = "esvtLast esvtLastActive esvtSpecified "; + const TEDocumentStepVersionType = "esvtLast esvtLastActive esvtSpecified "; // enum TEDocumentStorageFunction - var TEDocumentStorageFunction = "edsfExecutive edsfArchive "; + const TEDocumentStorageFunction = "edsfExecutive edsfArchive "; // enum TEDocumentStorageType - var TEDocumentStorageType = "edstSQLServer edstFile "; + const TEDocumentStorageType = "edstSQLServer edstFile "; // enum TEDocumentVersionSourceType - var TEDocumentVersionSourceType = + const TEDocumentVersionSourceType = "edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile "; // enum TEDocumentVersionState - var TEDocumentVersionState = "vsDefault vsDesign vsActive vsObsolete "; + const TEDocumentVersionState = "vsDefault vsDesign vsActive vsObsolete "; // enum TEncodeType - var TEncodeType = "etNone etCertificate etPassword etCertificatePassword "; + const TEncodeType = "etNone etCertificate etPassword etCertificatePassword "; // enum TExceptionCategory - var TExceptionCategory = "ecException ecWarning ecInformation "; + const TExceptionCategory = "ecException ecWarning ecInformation "; // enum TExportedSignaturesType - var TExportedSignaturesType = "estAll estApprovingOnly "; + const TExportedSignaturesType = "estAll estApprovingOnly "; // enum TExportedVersionType - var TExportedVersionType = "evtLast evtLastActive evtQuery "; + const TExportedVersionType = "evtLast evtLastActive evtQuery "; // enum TFieldDataType - var TFieldDataType = + const TFieldDataType = "fdtString " + "fdtNumeric " + "fdtInteger " + @@ -1827,7 +1827,7 @@ export default function(hljs) { "fdtLargeInteger "; // enum TFolderType - var TFolderType = + const TFolderType = "ftInbox " + "ftOutbox " + "ftFavorites " + @@ -1839,13 +1839,13 @@ export default function(hljs) { "ftSearch "; // enum TGridRowHeight - var TGridRowHeight = "grhAuto " + "grhX1 " + "grhX2 " + "grhX3 "; + const TGridRowHeight = "grhAuto " + "grhX1 " + "grhX2 " + "grhX3 "; // enum THyperlinkType - var THyperlinkType = "hltText " + "hltRTF " + "hltHTML "; + const THyperlinkType = "hltText " + "hltRTF " + "hltHTML "; // enum TImageFileFormat - var TImageFileFormat = + const TImageFileFormat = "iffBMP " + "iffJPEG " + "iffMultiPageTIFF " + @@ -1854,17 +1854,17 @@ export default function(hljs) { "iffPNG "; // enum TImageMode - var TImageMode = "im8bGrayscale " + "im24bRGB " + "im1bMonochrome "; + const TImageMode = "im8bGrayscale " + "im24bRGB " + "im1bMonochrome "; // enum TImageType - var TImageType = "itBMP " + "itJPEG " + "itWMF " + "itPNG "; + const TImageType = "itBMP " + "itJPEG " + "itWMF " + "itPNG "; // enum TInplaceHintKind - var TInplaceHintKind = + const TInplaceHintKind = "ikhInformation " + "ikhWarning " + "ikhError " + "ikhNoIcon "; // enum TISBLContext - var TISBLContext = + const TISBLContext = "icUnknown " + "icScript " + "icFunction " + @@ -1917,22 +1917,22 @@ export default function(hljs) { "icProcessMessageHandler "; // enum TItemShow - var TItemShow = "isShow " + "isHide " + "isByUserSettings "; + const TItemShow = "isShow " + "isHide " + "isByUserSettings "; // enum TJobKind - var TJobKind = "jkJob " + "jkNotice " + "jkControlJob "; + const TJobKind = "jkJob " + "jkNotice " + "jkControlJob "; // enum TJoinType - var TJoinType = "jtInner " + "jtLeft " + "jtRight " + "jtFull " + "jtCross "; + const TJoinType = "jtInner " + "jtLeft " + "jtRight " + "jtFull " + "jtCross "; // enum TLabelPos - var TLabelPos = "lbpAbove " + "lbpBelow " + "lbpLeft " + "lbpRight "; + const TLabelPos = "lbpAbove " + "lbpBelow " + "lbpLeft " + "lbpRight "; // enum TLicensingType - var TLicensingType = "eltPerConnection " + "eltPerUser "; + const TLicensingType = "eltPerConnection " + "eltPerUser "; // enum TLifeCycleStageFontColor - var TLifeCycleStageFontColor = + const TLifeCycleStageFontColor = "sfcUndefined " + "sfcBlack " + "sfcGreen " + @@ -1942,10 +1942,10 @@ export default function(hljs) { "sfcLilac "; // enum TLifeCycleStageFontStyle - var TLifeCycleStageFontStyle = "sfsItalic " + "sfsStrikeout " + "sfsNormal "; + const TLifeCycleStageFontStyle = "sfsItalic " + "sfsStrikeout " + "sfsNormal "; // enum TLockableDevelopmentComponentType - var TLockableDevelopmentComponentType = + const TLockableDevelopmentComponentType = "ldctStandardRoute " + "ldctWizard " + "ldctScript " + @@ -1959,15 +1959,15 @@ export default function(hljs) { "ldctServerEvents "; // enum TMaxRecordCountRestrictionType - var TMaxRecordCountRestrictionType = + const TMaxRecordCountRestrictionType = "mrcrtNone " + "mrcrtUser " + "mrcrtMaximal " + "mrcrtCustom "; // enum TRangeValueType - var TRangeValueType = + const TRangeValueType = "vtEqual " + "vtGreaterOrEqual " + "vtLessOrEqual " + "vtRange "; // enum TRelativeDate - var TRelativeDate = + const TRelativeDate = "rdYesterday " + "rdToday " + "rdTomorrow " + @@ -1980,10 +1980,10 @@ export default function(hljs) { "rdLastMonth "; // enum TReportDestination - var TReportDestination = "rdWindow " + "rdFile " + "rdPrinter "; + const TReportDestination = "rdWindow " + "rdFile " + "rdPrinter "; // enum TReqDataType - var TReqDataType = + const TReqDataType = "rdtString " + "rdtNumeric " + "rdtInteger " + @@ -1997,32 +1997,32 @@ export default function(hljs) { "rdtDocument "; // enum TRequisiteEventType - var TRequisiteEventType = "reOnChange " + "reOnChangeValues "; + const TRequisiteEventType = "reOnChange " + "reOnChangeValues "; // enum TSBTimeType - var TSBTimeType = "ttGlobal " + "ttLocal " + "ttUser " + "ttSystem "; + const TSBTimeType = "ttGlobal " + "ttLocal " + "ttUser " + "ttSystem "; // enum TSearchShowMode - var TSearchShowMode = + const TSearchShowMode = "ssmBrowse " + "ssmSelect " + "ssmMultiSelect " + "ssmBrowseModal "; // enum TSelectMode - var TSelectMode = "smSelect " + "smLike " + "smCard "; + const TSelectMode = "smSelect " + "smLike " + "smCard "; // enum TSignatureType - var TSignatureType = "stNone " + "stAuthenticating " + "stApproving "; + const TSignatureType = "stNone " + "stAuthenticating " + "stApproving "; // enum TSignerContentType - var TSignerContentType = "sctString " + "sctStream "; + const TSignerContentType = "sctString " + "sctStream "; // enum TStringsSortType - var TStringsSortType = "sstAnsiSort " + "sstNaturalSort "; + const TStringsSortType = "sstAnsiSort " + "sstNaturalSort "; // enum TStringValueType - var TStringValueType = "svtEqual " + "svtContain "; + const TStringValueType = "svtEqual " + "svtContain "; // enum TStructuredObjectAttributeType - var TStructuredObjectAttributeType = + const TStructuredObjectAttributeType = "soatString " + "soatNumeric " + "soatInteger " + @@ -2046,13 +2046,13 @@ export default function(hljs) { "soatUnknown "; // enum TTaskAbortReason - var TTaskAbortReason = "tarAbortByUser " + "tarAbortByWorkflowException "; + const TTaskAbortReason = "tarAbortByUser " + "tarAbortByWorkflowException "; // enum TTextValueType - var TTextValueType = "tvtAllWords " + "tvtExactPhrase " + "tvtAnyWord "; + const TTextValueType = "tvtAllWords " + "tvtExactPhrase " + "tvtAnyWord "; // enum TUserObjectStatus - var TUserObjectStatus = + const TUserObjectStatus = "usNone " + "usCompleted " + "usRedSquare " + @@ -2064,7 +2064,7 @@ export default function(hljs) { "usFollowUp "; // enum TUserType - var TUserType = + const TUserType = "utUnknown " + "utUser " + "utDeveloper " + @@ -2073,22 +2073,22 @@ export default function(hljs) { "utDisconnected "; // enum TValuesBuildType - var TValuesBuildType = + const TValuesBuildType = "btAnd " + "btDetailAnd " + "btOr " + "btNotOr " + "btOnly "; // enum TViewMode - var TViewMode = "vmView " + "vmSelect " + "vmNavigation "; + const TViewMode = "vmView " + "vmSelect " + "vmNavigation "; // enum TViewSelectionMode - var TViewSelectionMode = + const TViewSelectionMode = "vsmSingle " + "vsmMultiple " + "vsmMultipleCheck " + "vsmNoSelection "; // enum TWizardActionType - var TWizardActionType = + const TWizardActionType = "wfatPrevious " + "wfatNext " + "wfatCancel " + "wfatFinish "; // enum TWizardFormElementProperty - var TWizardFormElementProperty = + const TWizardFormElementProperty = "wfepUndefined " + "wfepText3 " + "wfepText6 " + @@ -2109,11 +2109,11 @@ export default function(hljs) { "wfepRadioGroupColumn3 "; // enum TWizardFormElementType - var TWizardFormElementType = + const TWizardFormElementType = "wfetQueryParameter " + "wfetText " + "wfetDelimiter " + "wfetLabel "; // enum TWizardParamType - var TWizardParamType = + const TWizardParamType = "wptString " + "wptInteger " + "wptNumeric " + @@ -2134,7 +2134,7 @@ export default function(hljs) { "wptDate "; // enum TWizardStepResult - var TWizardStepResult = + const TWizardStepResult = "wsrComplete " + "wsrGoNext " + "wsrGoPrevious " + @@ -2143,7 +2143,7 @@ export default function(hljs) { "wsrGoFinal "; // enum TWizardStepType - var TWizardStepType = + const TWizardStepType = "wstForm " + "wstEDocument " + "wstTaskCard " + @@ -2151,10 +2151,10 @@ export default function(hljs) { "wstFinal "; // enum TWorkAccessType - var TWorkAccessType = "waAll " + "waPerformers " + "waManual "; + const TWorkAccessType = "waAll " + "waPerformers " + "waManual "; // enum TWorkflowBlockType - var TWorkflowBlockType = + const TWorkflowBlockType = "wsbStart " + "wsbFinish " + "wsbNotice " + @@ -2169,7 +2169,7 @@ export default function(hljs) { "wsbPause "; // enum TWorkflowDataType - var TWorkflowDataType = + const TWorkflowDataType = "wdtInteger " + "wdtFloat " + "wdtString " + @@ -2206,13 +2206,13 @@ export default function(hljs) { "wdtAccountCollection "; // enum TWorkImportance - var TWorkImportance = "wiLow " + "wiNormal " + "wiHigh "; + const TWorkImportance = "wiLow " + "wiNormal " + "wiHigh "; // enum TWorkRouteType - var TWorkRouteType = "wrtSoft " + "wrtHard "; + const TWorkRouteType = "wrtSoft " + "wrtHard "; // enum TWorkState - var TWorkState = + const TWorkState = "wsInit " + "wsRunning " + "wsDone " + @@ -2221,11 +2221,11 @@ export default function(hljs) { "wsContinued "; // enum TWorkTextBuildingMode - var TWorkTextBuildingMode = + const TWorkTextBuildingMode = "wtmFull " + "wtmFromCurrent " + "wtmOnlyCurrent "; // Перечисления - var ENUMS = + const ENUMS = TAccountType + TActionEnabledMode + TAddPosition + @@ -2316,7 +2316,7 @@ export default function(hljs) { TWorkTextBuildingMode; // Системные функции ==> SYSFUNCTIONS - var system_functions = + const system_functions = "AddSubString " + "AdjustLineBreaks " + "AmountInWords " + @@ -2751,7 +2751,7 @@ export default function(hljs) { "ЦПодстр "; // Предопределенные переменные ==> built_in - var predefined_variables = + const predefined_variables = "AltState " + "Application " + "CallType " + @@ -2799,7 +2799,7 @@ export default function(hljs) { "РеквЗнач "; // Интерфейсы ==> type - var interfaces = + const interfaces = "IApplication " + "IAccessRights " + "IAccountRepository " + @@ -3049,114 +3049,142 @@ export default function(hljs) { "SBCrypto "; // built_in : встроенные или библиотечные объекты (константы, перечисления) - var BUILTIN = CONSTANTS + ENUMS; + const BUILTIN = CONSTANTS + ENUMS; // class: встроенные наборы значений, системные объекты, фабрики - var CLASS = predefined_variables; + const CLASS = predefined_variables; // literal : примитивные типы - var LITERAL = "null true false nil "; + const LITERAL = "null true false nil "; // number : числа - var NUMBERS = { + const NUMBERS = { className: "number", begin: hljs.NUMBER_RE, - relevance: 0, + relevance: 0 }; // string : строки - var STRINGS = { + const STRINGS = { className: "string", - variants: [{ begin: '"', end: '"' }, { begin: "'", end: "'" }], + variants: [ + { + begin: '"', + end: '"' + }, + { + begin: "'", + end: "'" + } + ] }; // Токены - var DOCTAGS = { + const DOCTAGS = { className: "doctag", begin: "\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\b", - relevance: 0, + relevance: 0 }; // Однострочный комментарий - var ISBL_LINE_COMMENT_MODE = { + const ISBL_LINE_COMMENT_MODE = { className: "comment", begin: "//", end: "$", relevance: 0, - contains: [hljs.PHRASAL_WORDS_MODE, DOCTAGS], + contains: [ + hljs.PHRASAL_WORDS_MODE, + DOCTAGS + ] }; // Многострочный комментарий - var ISBL_BLOCK_COMMENT_MODE = { + const ISBL_BLOCK_COMMENT_MODE = { className: "comment", begin: "/\\*", end: "\\*/", relevance: 0, - contains: [hljs.PHRASAL_WORDS_MODE, DOCTAGS], + contains: [ + hljs.PHRASAL_WORDS_MODE, + DOCTAGS + ] }; // comment : комментарии - var COMMENTS = { - variants: [ISBL_LINE_COMMENT_MODE, ISBL_BLOCK_COMMENT_MODE], + const COMMENTS = { + variants: [ + ISBL_LINE_COMMENT_MODE, + ISBL_BLOCK_COMMENT_MODE + ] }; // keywords : ключевые слова - var KEYWORDS = { + const KEYWORDS = { $pattern: UNDERSCORE_IDENT_RE, keyword: KEYWORD, built_in: BUILTIN, class: CLASS, - literal: LITERAL, + literal: LITERAL }; // methods : методы - var METHODS = { + const METHODS = { begin: "\\.\\s*" + hljs.UNDERSCORE_IDENT_RE, keywords: KEYWORDS, - relevance: 0, + relevance: 0 }; // type : встроенные типы - var TYPES = { + const TYPES = { className: "type", begin: ":[ \\t]*(" + interfaces.trim().replace(/\s/g, "|") + ")", end: "[ \\t]*=", - excludeEnd: true, + excludeEnd: true }; // variables : переменные - var VARIABLES = { + const VARIABLES = { className: "variable", keywords: KEYWORDS, begin: UNDERSCORE_IDENT_RE, relevance: 0, - contains: [TYPES, METHODS], + contains: [ + TYPES, + METHODS + ] }; // Имена функций - var FUNCTION_TITLE = FUNCTION_NAME_IDENT_RE + "\\("; + const FUNCTION_TITLE = FUNCTION_NAME_IDENT_RE + "\\("; - var TITLE_MODE = { + const TITLE_MODE = { className: "title", keywords: { $pattern: UNDERSCORE_IDENT_RE, - built_in: system_functions, + built_in: system_functions }, begin: FUNCTION_TITLE, end: "\\(", returnBegin: true, - excludeEnd: true, + excludeEnd: true }; // function : функции - var FUNCTIONS = { + const FUNCTIONS = { className: "function", begin: FUNCTION_TITLE, end: "\\)$", returnBegin: true, keywords: KEYWORDS, illegal: "[\\[\\]\\|\\$\\?%,~#@]", - contains: [TITLE_MODE, METHODS, VARIABLES, STRINGS, NUMBERS, COMMENTS], + contains: [ + TITLE_MODE, + METHODS, + VARIABLES, + STRINGS, + NUMBERS, + COMMENTS + ] }; return { @@ -3172,7 +3200,7 @@ export default function(hljs) { VARIABLES, STRINGS, NUMBERS, - COMMENTS, - ], + COMMENTS + ] }; } diff --git a/src/languages/jboss-cli.js b/src/languages/jboss-cli.js index 6def5bbb3a..488740cd3b 100644 --- a/src/languages/jboss-cli.js +++ b/src/languages/jboss-cli.js @@ -6,31 +6,37 @@ Category: config */ -export default function (hljs) { - var PARAM = { - begin: /[\w-]+ *=/, returnBegin: true, +export default function(hljs) { + const PARAM = { + begin: /[\w-]+ *=/, + returnBegin: true, relevance: 0, - contains: [{className: 'attr', begin: /[\w-]+/}] + contains: [ + { + className: 'attr', + begin: /[\w-]+/ + } + ] }; - var PARAMSBLOCK = { + const PARAMSBLOCK = { className: 'params', begin: /\(/, end: /\)/, contains: [PARAM], - relevance : 0 + relevance: 0 }; - var OPERATION = { + const OPERATION = { className: 'function', begin: /:[\w\-.]+/, relevance: 0 }; - var PATH = { + const PATH = { className: 'string', - begin: /\B(([\/.])[\w\-.\/=]+)+/, + begin: /\B(([\/.])[\w\-.\/=]+)+/ }; - var COMMAND_PARAMS = { + const COMMAND_PARAMS = { className: 'params', - begin: /--[\w\-=\/]+/, + begin: /--[\w\-=\/]+/ }; return { name: 'JBoss CLI', @@ -51,5 +57,5 @@ export default function (hljs) { PATH, PARAMSBLOCK ] - } + }; } diff --git a/src/languages/json.js b/src/languages/json.js index f8779a4221..f52656bf56 100644 --- a/src/languages/json.js +++ b/src/languages/json.js @@ -7,42 +7,51 @@ Category: common, protocols */ export default function(hljs) { - var LITERALS = {literal: 'true false null'}; - var ALLOWED_COMMENTS = [ + const LITERALS = { + literal: 'true false null' + }; + const ALLOWED_COMMENTS = [ hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE - ] - var TYPES = [ + ]; + const TYPES = [ hljs.QUOTE_STRING_MODE, hljs.C_NUMBER_MODE ]; - var VALUE_CONTAINER = { - end: ',', endsWithParent: true, excludeEnd: true, + const VALUE_CONTAINER = { + end: ',', + endsWithParent: true, + excludeEnd: true, contains: TYPES, keywords: LITERALS }; - var OBJECT = { - begin: /\{/, end: /\}/, + const OBJECT = { + begin: /\{/, + end: /\}/, contains: [ { className: 'attr', - begin: /"/, end: /"/, + begin: /"/, + end: /"/, contains: [hljs.BACKSLASH_ESCAPE], - illegal: '\\n', + illegal: '\\n' }, - hljs.inherit(VALUE_CONTAINER, {begin: /:/}) + hljs.inherit(VALUE_CONTAINER, { + begin: /:/ + }) ].concat(ALLOWED_COMMENTS), illegal: '\\S' }; - var ARRAY = { - begin: '\\[', end: '\\]', + const ARRAY = { + begin: '\\[', + end: '\\]', contains: [hljs.inherit(VALUE_CONTAINER)], // inherit is a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents illegal: '\\S' }; TYPES.push(OBJECT, ARRAY); ALLOWED_COMMENTS.forEach(function(rule) { - TYPES.push(rule) - }) + TYPES.push(rule); + }); return { name: 'JSON', contains: TYPES, diff --git a/src/languages/kotlin.js b/src/languages/kotlin.js index 6de5532d04..78eabf6eed 100644 --- a/src/languages/kotlin.js +++ b/src/languages/kotlin.js @@ -6,9 +6,8 @@ Category: common */ - export default function(hljs) { - var KEYWORDS = { + const KEYWORDS = { keyword: 'abstract as val var vararg get set class object open private protected public noinline ' + 'crossinline dynamic final enum if else do while for when throw try catch finally ' + @@ -20,7 +19,7 @@ export default function(hljs) { literal: 'true false null' }; - var KEYWORDS_WITH_LABEL = { + const KEYWORDS_WITH_LABEL = { className: 'keyword', begin: /\b(break|continue|return|this)\b/, starts: { @@ -32,52 +31,71 @@ export default function(hljs) { ] } }; - var LABEL = { - className: 'symbol', begin: hljs.UNDERSCORE_IDENT_RE + '@' + const LABEL = { + className: 'symbol', + begin: hljs.UNDERSCORE_IDENT_RE + '@' }; // for string templates - var SUBST = { + const SUBST = { className: 'subst', - begin: /\$\{/, end: /\}/, contains: [hljs.C_NUMBER_MODE] + begin: /\$\{/, + end: /\}/, + contains: [ hljs.C_NUMBER_MODE ] }; - var VARIABLE = { - className: 'variable', begin: '\\$' + hljs.UNDERSCORE_IDENT_RE + const VARIABLE = { + className: 'variable', + begin: '\\$' + hljs.UNDERSCORE_IDENT_RE }; - var STRING = { + const STRING = { className: 'string', variants: [ { - begin: '"""', end: '"""(?=[^"])', - contains: [VARIABLE, SUBST] + begin: '"""', + end: '"""(?=[^"])', + contains: [ + VARIABLE, + SUBST + ] }, // Can't use built-in modes easily, as we want to use STRING in the meta // context as 'meta-string' and there's no syntax to remove explicitly set // classNames in built-in modes. { - begin: '\'', end: '\'', + begin: '\'', + end: '\'', illegal: /\n/, - contains: [hljs.BACKSLASH_ESCAPE] + contains: [ hljs.BACKSLASH_ESCAPE ] }, { - begin: '"', end: '"', + begin: '"', + end: '"', illegal: /\n/, - contains: [hljs.BACKSLASH_ESCAPE, VARIABLE, SUBST] + contains: [ + hljs.BACKSLASH_ESCAPE, + VARIABLE, + SUBST + ] } ] }; SUBST.contains.push(STRING); - var ANNOTATION_USE_SITE = { - className: 'meta', begin: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*' + hljs.UNDERSCORE_IDENT_RE + ')?' + const ANNOTATION_USE_SITE = { + className: 'meta', + begin: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*' + hljs.UNDERSCORE_IDENT_RE + ')?' }; - var ANNOTATION = { - className: 'meta', begin: '@' + hljs.UNDERSCORE_IDENT_RE, + const ANNOTATION = { + className: 'meta', + begin: '@' + hljs.UNDERSCORE_IDENT_RE, contains: [ { - begin: /\(/, end: /\)/, + begin: /\(/, + end: /\)/, contains: [ - hljs.inherit(STRING, {className: 'meta-string'}) + hljs.inherit(STRING, { + className: 'meta-string' + }) ] } ] @@ -86,7 +104,7 @@ export default function(hljs) { // https://kotlinlang.org/docs/reference/whatsnew11.html#underscores-in-numeric-literals // According to the doc above, the number mode of kotlin is the same as java 8, // so the code below is copied from java.js - var KOTLIN_NUMBER_RE = '\\b' + + const KOTLIN_NUMBER_RE = '\\b' + '(' + '0[bB]([01]+[01_]+[01]+|[01]+)' + // 0b... '|' + @@ -100,43 +118,50 @@ export default function(hljs) { '([eE][-+]?\\d+)?' + // octal, decimal, float ')' + '[lLfF]?'; - var KOTLIN_NUMBER_MODE = { + const KOTLIN_NUMBER_MODE = { className: 'number', begin: KOTLIN_NUMBER_RE, relevance: 0 }; - var KOTLIN_NESTED_COMMENT = hljs.COMMENT( + const KOTLIN_NESTED_COMMENT = hljs.COMMENT( '/\\*', '\\*/', - { contains: [ hljs.C_BLOCK_COMMENT_MODE ] } + { + contains: [ hljs.C_BLOCK_COMMENT_MODE ] + } ); - var KOTLIN_PAREN_TYPE = { + const KOTLIN_PAREN_TYPE = { variants: [ - { className: 'type', - begin: hljs.UNDERSCORE_IDENT_RE - }, - { begin: /\(/, end: /\)/, - contains: [] //defined later - } - ] + { + className: 'type', + begin: hljs.UNDERSCORE_IDENT_RE + }, + { + begin: /\(/, + end: /\)/, + contains: [] // defined later + } + ] }; - var KOTLIN_PAREN_TYPE2 = KOTLIN_PAREN_TYPE; + const KOTLIN_PAREN_TYPE2 = KOTLIN_PAREN_TYPE; KOTLIN_PAREN_TYPE2.variants[1].contains = [ KOTLIN_PAREN_TYPE ]; KOTLIN_PAREN_TYPE.variants[1].contains = [ KOTLIN_PAREN_TYPE2 ]; return { name: 'Kotlin', - aliases: ['kt'], + aliases: [ 'kt' ], keywords: KEYWORDS, - contains : [ + contains: [ hljs.COMMENT( '/\\*\\*', '\\*/', { - relevance : 0, - contains : [{ - className : 'doctag', - begin : '@[A-Za-z]+' - }] + relevance: 0, + contains: [ + { + className: 'doctag', + begin: '@[A-Za-z]+' + } + ] } ), hljs.C_LINE_COMMENT_MODE, @@ -147,7 +172,8 @@ export default function(hljs) { ANNOTATION, { className: 'function', - beginKeywords: 'fun', end: '[(]|$', + beginKeywords: 'fun', + end: '[(]|$', returnBegin: true, excludeEnd: true, keywords: KEYWORDS, @@ -155,24 +181,30 @@ export default function(hljs) { relevance: 5, contains: [ { - begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, + begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', + returnBegin: true, relevance: 0, - contains: [hljs.UNDERSCORE_TITLE_MODE] + contains: [ hljs.UNDERSCORE_TITLE_MODE ] }, { className: 'type', - begin: //, keywords: 'reified', + begin: //, + keywords: 'reified', relevance: 0 }, { className: 'params', - begin: /\(/, end: /\)/, + begin: /\(/, + end: /\)/, endsParent: true, keywords: KEYWORDS, relevance: 0, contains: [ { - begin: /:/, end: /[=,\/]/, endsWithParent: true, + begin: /:/, + end: /[=,\/]/, + endsWithParent: true, contains: [ KOTLIN_PAREN_TYPE, hljs.C_LINE_COMMENT_MODE, @@ -193,20 +225,29 @@ export default function(hljs) { }, { className: 'class', - beginKeywords: 'class interface trait', end: /[:\{(]|$/, // remove 'trait' when removed from KEYWORDS + beginKeywords: 'class interface trait', // remove 'trait' when removed from KEYWORDS + end: /[:\{(]|$/, excludeEnd: true, illegal: 'extends implements', contains: [ - {beginKeywords: 'public protected internal private constructor'}, + { + beginKeywords: 'public protected internal private constructor' + }, hljs.UNDERSCORE_TITLE_MODE, { className: 'type', - begin: //, excludeBegin: true, excludeEnd: true, + begin: //, + excludeBegin: true, + excludeEnd: true, relevance: 0 }, { className: 'type', - begin: /[,:]\s*/, end: /[<\(,]|$/, excludeBegin: true, returnEnd: true + begin: /[,:]\s*/, + end: /[<\(,]|$/, + excludeBegin: true, + returnEnd: true }, ANNOTATION_USE_SITE, ANNOTATION @@ -215,7 +256,8 @@ export default function(hljs) { STRING, { className: 'meta', - begin: "^#!/usr/bin/env", end: '$', + begin: "^#!/usr/bin/env", + end: '$', illegal: '\n' }, KOTLIN_NUMBER_MODE diff --git a/src/languages/lasso.js b/src/languages/lasso.js index eb3439a938..cab25dcc04 100644 --- a/src/languages/lasso.js +++ b/src/languages/lasso.js @@ -6,10 +6,10 @@ Website: http://www.lassosoft.com/What-Is-Lasso */ export default function(hljs) { - var LASSO_IDENT_RE = '[a-zA-Z_][\\w.]*'; - var LASSO_ANGLE_RE = '<\\?(lasso(script)?|=)'; - var LASSO_CLOSE_RE = '\\]|\\?>'; - var LASSO_KEYWORDS = { + const LASSO_IDENT_RE = '[a-zA-Z_][\\w.]*'; + const LASSO_ANGLE_RE = '<\\?(lasso(script)?|=)'; + const LASSO_CLOSE_RE = '\\]|\\?>'; + const LASSO_KEYWORDS = { $pattern: LASSO_IDENT_RE + '|&[lg]t;', literal: 'true false none minimal full all void and or not ' + @@ -37,14 +37,14 @@ export default function(hljs) { 'require returnhome skip split_thread sum take thread to trait type ' + 'where with yield yieldhome' }; - var HTML_COMMENT = hljs.COMMENT( + const HTML_COMMENT = hljs.COMMENT( '', { relevance: 0 } ); - var LASSO_NOPROCESS = { + const LASSO_NOPROCESS = { className: 'meta', begin: '\\[noprocess\\]', starts: { @@ -53,23 +53,30 @@ export default function(hljs) { contains: [HTML_COMMENT] } }; - var LASSO_START = { + const LASSO_START = { className: 'meta', begin: '\\[/noprocess|' + LASSO_ANGLE_RE }; - var LASSO_DATAMEMBER = { + const LASSO_DATAMEMBER = { className: 'symbol', begin: '\'' + LASSO_IDENT_RE + '\'' }; - var LASSO_CODE = [ + const LASSO_CODE = [ hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, - hljs.inherit(hljs.C_NUMBER_MODE, {begin: hljs.C_NUMBER_RE + '|(-?infinity|NaN)\\b'}), - hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}), - hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}), + hljs.inherit(hljs.C_NUMBER_MODE, { + begin: hljs.C_NUMBER_RE + '|(-?infinity|NaN)\\b' + }), + hljs.inherit(hljs.APOS_STRING_MODE, { + illegal: null + }), + hljs.inherit(hljs.QUOTE_STRING_MODE, { + illegal: null + }), { className: 'string', - begin: '`', end: '`' + begin: '`', + end: '`' }, { // variables variants: [ @@ -77,14 +84,16 @@ export default function(hljs) { begin: '[#$]' + LASSO_IDENT_RE }, { - begin: '#', end: '\\d+', + begin: '#', + end: '\\d+', illegal: '\\W' } ] }, { className: 'type', - begin: '::\\s*', end: LASSO_IDENT_RE, + begin: '::\\s*', + end: LASSO_IDENT_RE, illegal: '\\W' }, { @@ -107,15 +116,21 @@ export default function(hljs) { { className: 'class', beginKeywords: 'define', - returnEnd: true, end: '\\(|=>', + returnEnd: true, + end: '\\(|=>', contains: [ - hljs.inherit(hljs.TITLE_MODE, {begin: LASSO_IDENT_RE + '(=(?!>))?|[-+*/%](?!>)'}) + hljs.inherit(hljs.TITLE_MODE, { + begin: LASSO_IDENT_RE + '(=(?!>))?|[-+*/%](?!>)' + }) ] } ]; return { name: 'Lasso', - aliases: ['ls', 'lassoscript'], + aliases: [ + 'ls', + 'lassoscript' + ], case_insensitive: true, keywords: LASSO_KEYWORDS, contains: [ @@ -161,7 +176,8 @@ export default function(hljs) { }, { className: 'meta', - begin: '^#!', end:'lasso9$', + begin: '^#!', + end: 'lasso9$', relevance: 10 } ].concat(LASSO_CODE) diff --git a/src/languages/ldif.js b/src/languages/ldif.js index fac612aa05..bf67db3f0e 100644 --- a/src/languages/ldif.js +++ b/src/languages/ldif.js @@ -10,18 +10,29 @@ export default function(hljs) { contains: [ { className: 'attribute', - begin: '^dn', end: ': ', excludeEnd: true, - starts: {end: '$', relevance: 0}, + begin: '^dn', + end: ': ', + excludeEnd: true, + starts: { + end: '$', + relevance: 0 + }, relevance: 10 }, { className: 'attribute', - begin: '^\\w', end: ': ', excludeEnd: true, - starts: {end: '$', relevance: 0} + begin: '^\\w', + end: ': ', + excludeEnd: true, + starts: { + end: '$', + relevance: 0 + } }, { className: 'literal', - begin: '^-', end: '$' + begin: '^-', + end: '$' }, hljs.HASH_COMMENT_MODE ] diff --git a/src/languages/leaf.js b/src/languages/leaf.js index 05f7644898..0bb9b2c7e1 100644 --- a/src/languages/leaf.js +++ b/src/languages/leaf.js @@ -4,17 +4,17 @@ Author: Hale Chan Description: Based on the Leaf reference from https://vapor.github.io/documentation/guide/leaf.html. */ -export default function (hljs) { +export default function(hljs) { return { name: 'Leaf', contains: [ { className: 'function', begin: '#+' + '[A-Za-z_0-9]*' + '\\(', - end:/ \{/, + end: / \{/, returnBegin: true, excludeEnd: true, - contains : [ + contains: [ { className: 'keyword', begin: '#+' @@ -25,7 +25,8 @@ export default function (hljs) { }, { className: 'params', - begin: '\\(', end: '\\)', + begin: '\\(', + end: '\\)', endsParent: true, contains: [ { diff --git a/src/languages/livecodeserver.js b/src/languages/livecodeserver.js index be53aff79b..f273a6b73e 100644 --- a/src/languages/livecodeserver.js +++ b/src/languages/livecodeserver.js @@ -8,27 +8,37 @@ Category: enterprise */ export default function(hljs) { - var VARIABLE = { + const VARIABLE = { className: 'variable', variants: [ - {begin: '\\b([gtps][A-Z]{1}[a-zA-Z0-9]*)(\\[.+\\])?(?:\\s*?)'}, - {begin: '\\$_[A-Z]+'} + { + begin: '\\b([gtps][A-Z]{1}[a-zA-Z0-9]*)(\\[.+\\])?(?:\\s*?)' + }, + { + begin: '\\$_[A-Z]+' + } ], relevance: 0 }; - var COMMENT_MODES = [ + const COMMENT_MODES = [ hljs.C_BLOCK_COMMENT_MODE, hljs.HASH_COMMENT_MODE, hljs.COMMENT('--', '$'), hljs.COMMENT('[^:]//', '$') ]; - var TITLE1 = hljs.inherit(hljs.TITLE_MODE, { + const TITLE1 = hljs.inherit(hljs.TITLE_MODE, { variants: [ - {begin: '\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*'}, - {begin: '\\b_[a-z0-9\\-]+'} + { + begin: '\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*' + }, + { + begin: '\\b_[a-z0-9\\-]+' + } ] }); - var TITLE2 = hljs.inherit(hljs.TITLE_MODE, {begin: '\\b([A-Za-z0-9_\\-]+)\\b'}); + const TITLE2 = hljs.inherit(hljs.TITLE_MODE, { + begin: '\\b([A-Za-z0-9_\\-]+)\\b' + }); return { name: 'LiveCode', case_insensitive: false, @@ -115,7 +125,8 @@ export default function(hljs) { }, { className: 'function', - beginKeywords: 'function', end: '$', + beginKeywords: 'function', + end: '$', contains: [ VARIABLE, TITLE2, @@ -128,7 +139,8 @@ export default function(hljs) { }, { className: 'function', - begin: '\\bend\\s+', end: '$', + begin: '\\bend\\s+', + end: '$', keywords: 'end', contains: [ TITLE2, @@ -137,7 +149,8 @@ export default function(hljs) { relevance: 0 }, { - beginKeywords: 'command on', end: '$', + beginKeywords: 'command on', + end: '$', contains: [ VARIABLE, TITLE2, @@ -155,8 +168,12 @@ export default function(hljs) { begin: '<\\?(rev|lc|livecode)', relevance: 10 }, - { begin: '<\\?' }, - { begin: '\\?>' } + { + begin: '<\\?' + }, + { + begin: '\\?>' + } ] }, hljs.APOS_STRING_MODE, diff --git a/src/languages/livescript.js b/src/languages/livescript.js index 6d5f4abf15..4e86129237 100644 --- a/src/languages/livescript.js +++ b/src/languages/livescript.js @@ -11,11 +11,11 @@ Category: scripting import * as ECMAScript from './lib/ecmascript.js'; export default function(hljs) { - var LIVESCRIPT_BUILT_INS = [ + const LIVESCRIPT_BUILT_INS = [ 'npm', 'print' ]; - var LIVESCRIPT_LITERALS = [ + const LIVESCRIPT_LITERALS = [ 'yes', 'no', 'on', @@ -24,7 +24,7 @@ export default function(hljs) { 'that', 'void' ]; - var LIVESCRIPT_KEYWORDS = [ + const LIVESCRIPT_KEYWORDS = [ 'then', 'unless', 'until', @@ -55,52 +55,72 @@ export default function(hljs) { '__bind', '__indexOf' ]; - var KEYWORDS = { + const KEYWORDS = { keyword: ECMAScript.KEYWORDS.concat(LIVESCRIPT_KEYWORDS).join(" "), literal: ECMAScript.LITERALS.concat(LIVESCRIPT_LITERALS).join(" "), built_in: ECMAScript.BUILT_INS.concat(LIVESCRIPT_BUILT_INS).join(" ") }; - var JS_IDENT_RE = '[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*'; - var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE}); - var SUBST = { + const JS_IDENT_RE = '[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*'; + const TITLE = hljs.inherit(hljs.TITLE_MODE, { + begin: JS_IDENT_RE + }); + const SUBST = { className: 'subst', - begin: /#\{/, end: /\}/, + begin: /#\{/, + end: /\}/, keywords: KEYWORDS }; - var SUBST_SIMPLE = { + const SUBST_SIMPLE = { className: 'subst', - begin: /#[A-Za-z$_]/, end: /(?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/, + begin: /#[A-Za-z$_]/, + end: /(?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/, keywords: KEYWORDS }; - var EXPRESSIONS = [ + const EXPRESSIONS = [ hljs.BINARY_NUMBER_MODE, { className: 'number', begin: '(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)', relevance: 0, - starts: {end: '(\\s*/)?', relevance: 0} // a number tries to eat the following slash to prevent treating it as a regexp + starts: { + end: '(\\s*/)?', + relevance: 0 + } // a number tries to eat the following slash to prevent treating it as a regexp }, { className: 'string', variants: [ { - begin: /'''/, end: /'''/, + begin: /'''/, + end: /'''/, contains: [hljs.BACKSLASH_ESCAPE] }, { - begin: /'/, end: /'/, + begin: /'/, + end: /'/, contains: [hljs.BACKSLASH_ESCAPE] }, { - begin: /"""/, end: /"""/, - contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE] + begin: /"""/, + end: /"""/, + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST, + SUBST_SIMPLE + ] }, { - begin: /"/, end: /"/, - contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE] + begin: /"/, + end: /"/, + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST, + SUBST_SIMPLE + ] }, { - begin: /\\/, end: /(\s|$)/, + begin: /\\/, + end: /(\s|$)/, excludeEnd: true } ] @@ -109,8 +129,12 @@ export default function(hljs) { className: 'regexp', variants: [ { - begin: '//', end: '//[gim]*', - contains: [SUBST, hljs.HASH_COMMENT_MODE] + begin: '//', + end: '//[gim]*', + contains: [ + SUBST, + hljs.HASH_COMMENT_MODE + ] }, { // regex can't start with space to parse x / 2 / 3 as two divisions @@ -123,28 +147,32 @@ export default function(hljs) { begin: '@' + JS_IDENT_RE }, { - begin: '``', end: '``', - excludeBegin: true, excludeEnd: true, + begin: '``', + end: '``', + excludeBegin: true, + excludeEnd: true, subLanguage: 'javascript' } ]; SUBST.contains = EXPRESSIONS; - var PARAMS = { + const PARAMS = { className: 'params', - begin: '\\(', returnBegin: true, + begin: '\\(', + returnBegin: true, /* We need another contained nameless mode to not have every nested pair of parens to be called "params" */ contains: [ { - begin: /\(/, end: /\)/, + begin: /\(/, + end: /\)/, keywords: KEYWORDS, contains: ['self'].concat(EXPRESSIONS) } ] }; - var SYMBOLS = { + const SYMBOLS = { begin: '(#=>|=>|\\|>>|-?->|!->)' }; @@ -159,17 +187,23 @@ export default function(hljs) { SYMBOLS, // relevance booster { className: 'function', - contains: [TITLE, PARAMS], + contains: [ + TITLE, + PARAMS + ], returnBegin: true, variants: [ { - begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B->\\*?', end: '->\\*?' + begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B->\\*?', + end: '->\\*?' }, { - begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?', end: '[-~]{1,2}>\\*?' + begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?', + end: '[-~]{1,2}>\\*?' }, { - begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?', end: '!?[-~]{1,2}>\\*?' + begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?', + end: '!?[-~]{1,2}>\\*?' } ] }, @@ -189,8 +223,10 @@ export default function(hljs) { ] }, { - begin: JS_IDENT_RE + ':', end: ':', - returnBegin: true, returnEnd: true, + begin: JS_IDENT_RE + ':', + end: ':', + returnBegin: true, + returnEnd: true, relevance: 0 } ]) diff --git a/src/languages/lua.js b/src/languages/lua.js index 48bb928b04..96123ad547 100644 --- a/src/languages/lua.js +++ b/src/languages/lua.js @@ -7,13 +7,14 @@ Website: https://www.lua.org */ export default function(hljs) { - var OPENING_LONG_BRACKET = '\\[=*\\['; - var CLOSING_LONG_BRACKET = '\\]=*\\]'; - var LONG_BRACKETS = { - begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET, + const OPENING_LONG_BRACKET = '\\[=*\\['; + const CLOSING_LONG_BRACKET = '\\]=*\\]'; + const LONG_BRACKETS = { + begin: OPENING_LONG_BRACKET, + end: CLOSING_LONG_BRACKET, contains: ['self'] }; - var COMMENTS = [ + const COMMENTS = [ hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'), hljs.COMMENT( '--' + OPENING_LONG_BRACKET, @@ -31,14 +32,14 @@ export default function(hljs) { literal: "true false nil", keyword: "and break do else elseif end for goto if in local not or repeat return then until while", built_in: - //Metatags and globals: + // Metatags and globals: '_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len ' + '__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert ' + - //Standard methods and properties: + // Standard methods and properties: 'collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring ' + 'module next pairs pcall print rawequal rawget rawset require select setfenv ' + 'setmetatable tonumber tostring type unpack xpcall arg self ' + - //Library methods and properties (one line per library): + // Library methods and properties (one line per library): 'coroutine resume yield status wrap create running debug getupvalue ' + 'debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv ' + 'io lines write close flush open output type read stderr stdin input stdout popen tmpfile ' + @@ -50,12 +51,16 @@ export default function(hljs) { contains: COMMENTS.concat([ { className: 'function', - beginKeywords: 'function', end: '\\)', + beginKeywords: 'function', + end: '\\)', contains: [ - hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}), + hljs.inherit(hljs.TITLE_MODE, { + begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*' + }), { className: 'params', - begin: '\\(', endsWithParent: true, + begin: '\\(', + endsWithParent: true, contains: COMMENTS } ].concat(COMMENTS) @@ -65,7 +70,8 @@ export default function(hljs) { hljs.QUOTE_STRING_MODE, { className: 'string', - begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET, + begin: OPENING_LONG_BRACKET, + end: CLOSING_LONG_BRACKET, contains: [LONG_BRACKETS], relevance: 5 } From 9694cd1560159fe550c5a505692e334675f12b19 Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Thu, 12 Nov 2020 12:15:01 -0500 Subject: [PATCH 4/7] V-Z --- src/languages/vala.js | 14 +-- src/languages/vbnet.js | 26 +++-- src/languages/vbscript-html.js | 3 +- src/languages/verilog.js | 53 +++++++--- src/languages/vhdl.js | 22 ++-- src/languages/vim.js | 43 ++++---- src/languages/x86asm.js | 31 ++++-- src/languages/xl.js | 66 +++++++----- src/languages/xml.js | 171 ++++++++++++++++++++----------- src/languages/xquery.js | 182 +++++++++++++++++++-------------- src/languages/zephir.js | 55 ++++++---- 11 files changed, 412 insertions(+), 254 deletions(-) diff --git a/src/languages/vala.js b/src/languages/vala.js index 2ca8243e31..1c71113391 100644 --- a/src/languages/vala.js +++ b/src/languages/vala.js @@ -31,17 +31,18 @@ export default function(hljs) { contains: [ { className: 'class', - beginKeywords: 'class interface namespace', end: /\{/, excludeEnd: true, + beginKeywords: 'class interface namespace', + end: /\{/, + excludeEnd: true, illegal: '[^,:\\n\\s\\.]', - contains: [ - hljs.UNDERSCORE_TITLE_MODE - ] + contains: [ hljs.UNDERSCORE_TITLE_MODE ] }, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, { className: 'string', - begin: '"""', end: '"""', + begin: '"""', + end: '"""', relevance: 5 }, hljs.APOS_STRING_MODE, @@ -49,7 +50,8 @@ export default function(hljs) { hljs.C_NUMBER_MODE, { className: 'meta', - begin: '^#', end: '$', + begin: '^#', + end: '$', relevance: 2 } ] diff --git a/src/languages/vbnet.js b/src/languages/vbnet.js index 8346a80c37..8862b5e9ad 100644 --- a/src/languages/vbnet.js +++ b/src/languages/vbnet.js @@ -8,7 +8,7 @@ Website: https://docs.microsoft.com/en-us/dotnet/visual-basic/getting-started/ export default function(hljs) { return { name: 'Visual Basic .NET', - aliases: ['vb'], + aliases: [ 'vb' ], case_insensitive: true, keywords: { keyword: @@ -24,7 +24,7 @@ export default function(hljs) { 'select set shadows shared skip static step stop structure strict sub synclock ' + /* s */ 'take text then throw to try unicode until using when where while widening with withevents writeonly xor yield', /* t-y */ built_in: - 'boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype ' + /* b-c */ + 'boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype ' + /* b-c */ 'date decimal directcast double gettype getxmlnamespace iif integer long object ' + /* d-o */ 'sbyte short single string trycast typeof uinteger ulong ushort', /* s-u */ literal: @@ -32,7 +32,13 @@ export default function(hljs) { }, illegal: '//|\\{|\\}|endif|gosub|variant|wend|^\\$ ', /* reserved deprecated keywords */ contains: [ - hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '""'}]}), + hljs.inherit(hljs.QUOTE_STRING_MODE, { + contains: [ + { + begin: '""' + } + ] + }), hljs.COMMENT( '\'', '$', @@ -42,12 +48,13 @@ export default function(hljs) { { className: 'doctag', begin: '\'\'\'|', - contains: [hljs.PHRASAL_WORDS_MODE] + contains: [ hljs.PHRASAL_WORDS_MODE ] }, { className: 'doctag', - begin: '', - contains: [hljs.PHRASAL_WORDS_MODE] + begin: '', + contains: [ hljs.PHRASAL_WORDS_MODE ] } ] } @@ -55,8 +62,11 @@ export default function(hljs) { hljs.C_NUMBER_MODE, { className: 'meta', - begin: '#', end: '$', - keywords: {'meta-keyword': 'if else elseif end region externalsource'} + begin: '#', + end: '$', + keywords: { + 'meta-keyword': 'if else elseif end region externalsource' + } } ] }; diff --git a/src/languages/vbscript-html.js b/src/languages/vbscript-html.js index 527d7daadb..ea0537da0e 100644 --- a/src/languages/vbscript-html.js +++ b/src/languages/vbscript-html.js @@ -13,7 +13,8 @@ export default function(hljs) { subLanguage: 'xml', contains: [ { - begin: '<%', end: '%>', + begin: '<%', + end: '%>', subLanguage: 'vbscript' } ] diff --git a/src/languages/verilog.js b/src/languages/verilog.js index cb88958636..fa242a556b 100644 --- a/src/languages/verilog.js +++ b/src/languages/verilog.js @@ -7,7 +7,7 @@ Website: http://www.verilog.com */ export default function(hljs) { - var SV_KEYWORDS = { + const SV_KEYWORDS = { $pattern: /[\w\$]+/, keyword: 'accept_on alias always always_comb always_ff always_latch and assert assign ' + @@ -66,10 +66,15 @@ export default function(hljs) { '$swriteo $fscanf $fread $fseek $fflush $feof $fopen $fwrite $fwriteb ' + '$fwriteh $fwriteo $fmonitor $fmonitorb $fmonitorh $fmonitoro $sformat ' + '$sformatf $fgetc $ungetc $fgets $sscanf $rewind $ftell $ferror' - }; + }; + return { name: 'Verilog', - aliases: ['v', 'sv', 'svh'], + aliases: [ + 'v', + 'sv', + 'svh' + ], case_insensitive: false, keywords: SV_KEYWORDS, contains: [ @@ -78,31 +83,47 @@ export default function(hljs) { hljs.QUOTE_STRING_MODE, { className: 'number', - contains: [hljs.BACKSLASH_ESCAPE], + contains: [ hljs.BACKSLASH_ESCAPE ], variants: [ - {begin: '\\b((\\d+\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)'}, - {begin: '\\B((\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)'}, - {begin: '\\b([0-9_])+', relevance: 0} + { + begin: '\\b((\\d+\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)' + }, + { + begin: '\\B((\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)' + }, + { + begin: '\\b([0-9_])+', + relevance: 0 + } ] }, /* parameters to instances */ { className: 'variable', variants: [ - {begin: '#\\((?!parameter).+\\)'}, - {begin: '\\.\\w+', relevance: 0}, + { + begin: '#\\((?!parameter).+\\)' + }, + { + begin: '\\.\\w+', + relevance: 0 + } ] }, { className: 'meta', - begin: '`', end: '$', - keywords: {'meta-keyword': 'define __FILE__ ' + - '__LINE__ begin_keywords celldefine default_nettype define ' + - 'else elsif end_keywords endcelldefine endif ifdef ifndef ' + - 'include line nounconnected_drive pragma resetall timescale ' + - 'unconnected_drive undef undefineall'}, + begin: '`', + end: '$', + keywords: { + 'meta-keyword': + 'define __FILE__ ' + + '__LINE__ begin_keywords celldefine default_nettype define ' + + 'else elsif end_keywords endcelldefine endif ifdef ifndef ' + + 'include line nounconnected_drive pragma resetall timescale ' + + 'unconnected_drive undef undefineall' + }, relevance: 0 } ] - }; // return + }; } diff --git a/src/languages/vhdl.js b/src/languages/vhdl.js index 3b38be6009..c65679b79f 100644 --- a/src/languages/vhdl.js +++ b/src/languages/vhdl.js @@ -10,14 +10,14 @@ export default function(hljs) { // Regular expression for VHDL numeric literals. // Decimal literal: - var INTEGER_RE = '\\d(_|\\d)*'; - var EXPONENT_RE = '[eE][-+]?' + INTEGER_RE; - var DECIMAL_LITERAL_RE = INTEGER_RE + '(\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?'; + const INTEGER_RE = '\\d(_|\\d)*'; + const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE; + const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?'; // Based literal: - var BASED_INTEGER_RE = '\\w+'; - var BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?'; + const BASED_INTEGER_RE = '\\w+'; + const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?'; - var NUMBER_RE = '\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')'; + const NUMBER_RE = '\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')'; return { name: 'VHDL', @@ -41,12 +41,12 @@ export default function(hljs) { 'std_ulogic std_ulogic_vector unresolved_unsigned u_unsigned unresolved_signed u_signed ' + 'real_vector time_vector', literal: - 'false true note warning error failure ' + // severity_level - 'line text side width' // textio + 'false true note warning error failure ' + // severity_level + 'line text side width' // textio }, illegal: /\{/, contains: [ - hljs.C_BLOCK_COMMENT_MODE, // VHDL-2008 block commenting. + hljs.C_BLOCK_COMMENT_MODE, // VHDL-2008 block commenting. hljs.COMMENT('--', '$'), hljs.QUOTE_STRING_MODE, { @@ -57,12 +57,12 @@ export default function(hljs) { { className: 'string', begin: '\'(U|X|0|1|Z|W|L|H|-)\'', - contains: [hljs.BACKSLASH_ESCAPE] + contains: [ hljs.BACKSLASH_ESCAPE ] }, { className: 'symbol', begin: '\'[A-Za-z](_?[A-Za-z0-9])*', - contains: [hljs.BACKSLASH_ESCAPE] + contains: [ hljs.BACKSLASH_ESCAPE ] } ] }; diff --git a/src/languages/vim.js b/src/languages/vim.js index 5b2af2c9b7..a36edd2a12 100644 --- a/src/languages/vim.js +++ b/src/languages/vim.js @@ -13,25 +13,25 @@ export default function(hljs) { $pattern: /[!#@\w]+/, keyword: // express version except: ! & * < = > !! # @ @@ - 'N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope '+ - 'cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc '+ - 'ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 '+ - 'profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor '+ - 'so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew '+ - 'tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ '+ + 'N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope ' + + 'cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ' + + 'ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 ' + + 'profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor ' + + 'so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew ' + + 'tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ ' + // full version - 'Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload '+ - 'bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap '+ - 'cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor '+ - 'endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap '+ - 'imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview '+ - 'lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap '+ - 'nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext '+ - 'ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding '+ - 'scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace '+ - 'startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious '+'trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew '+ + 'Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload ' + + 'bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap ' + + 'cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor ' + + 'endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap ' + + 'imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview ' + + 'lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap ' + + 'nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ' + + 'ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding ' + + 'scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace ' + + 'startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious ' + 'trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew ' + 'vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank', - built_in: //built in func + built_in: // built in func 'synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv ' + 'complete_check add getwinposx getqflist getwinposy screencol ' + 'clearmatches empty extend getcmdpos mzeval garbagecollect setreg ' + @@ -73,7 +73,8 @@ export default function(hljs) { hljs.NUMBER_MODE, { className: 'string', - begin: '\'', end: '\'', + begin: '\'', + end: '\'', illegal: '\\n' }, @@ -99,13 +100,15 @@ export default function(hljs) { }, { className: 'function', - beginKeywords: 'function function!', end: '$', + beginKeywords: 'function function!', + end: '$', relevance: 0, contains: [ hljs.TITLE_MODE, { className: 'params', - begin: '\\(', end: '\\)' + begin: '\\(', + end: '\\)' } ] }, diff --git a/src/languages/x86asm.js b/src/languages/x86asm.js index f01c639d9a..80cd074477 100644 --- a/src/languages/x86asm.js +++ b/src/languages/x86asm.js @@ -92,13 +92,20 @@ export default function(hljs) { }, // Hex number in $ - { begin: '\\$[0-9][0-9A-Fa-f]*', relevance: 0 }, + { + begin: '\\$[0-9][0-9A-Fa-f]*', + relevance: 0 + }, // Number in H,D,T,Q,O,B,Y suffix - { begin: '\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b' }, + { + begin: '\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b' + }, // Number in X,D,T,Q,O,B,Y prefix - { begin: '\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b'} + { + begin: '\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b' + } ] }, // Double quote string @@ -107,9 +114,15 @@ export default function(hljs) { className: 'string', variants: [ // Single-quoted string - { begin: '\'', end: '[^\\\\]\'' }, + { + begin: '\'', + end: '[^\\\\]\'' + }, // Backquoted string - { begin: '`', end: '[^\\\\]`' } + { + begin: '`', + end: '[^\\\\]`' + } ], relevance: 0 }, @@ -117,9 +130,13 @@ export default function(hljs) { className: 'symbol', variants: [ // Global label and local label - { begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)' }, + { + begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)' + }, // Macro-local label - { begin: '^\\s*%%[A-Za-z0-9_$#@~.?]*:' } + { + begin: '^\\s*%%[A-Za-z0-9_$#@~.?]*:' + } ], relevance: 0 }, diff --git a/src/languages/xl.js b/src/languages/xl.js index f45d464a60..1878b961ff 100644 --- a/src/languages/xl.js +++ b/src/languages/xl.js @@ -6,11 +6,11 @@ Website: http://xlr.sf.net */ export default function(hljs) { - var BUILTIN_MODULES = + const BUILTIN_MODULES = 'ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo ' + 'StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts'; - var XL_KEYWORDS = { + const XL_KEYWORDS = { $pattern: /[a-zA-Z][a-zA-Z0-9_?]*/, keyword: 'if then else do while until for loop import with is as where when by data constant ' + @@ -30,51 +30,61 @@ export default function(hljs) { BUILTIN_MODULES }; - var DOUBLE_QUOTE_TEXT = { + const DOUBLE_QUOTE_TEXT = { className: 'string', - begin: '"', end: '"', illegal: '\\n' + begin: '"', + end: '"', + illegal: '\\n' }; - var SINGLE_QUOTE_TEXT = { + const SINGLE_QUOTE_TEXT = { className: 'string', - begin: '\'', end: '\'', illegal: '\\n' + begin: '\'', + end: '\'', + illegal: '\\n' }; - var LONG_TEXT = { + const LONG_TEXT = { className: 'string', - begin: '<<', end: '>>' + begin: '<<', + end: '>>' }; - var BASED_NUMBER = { + const BASED_NUMBER = { className: 'number', begin: '[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?' }; - var IMPORT = { - beginKeywords: 'import', end: '$', + const IMPORT = { + beginKeywords: 'import', + end: '$', keywords: XL_KEYWORDS, - contains: [DOUBLE_QUOTE_TEXT] + contains: [ DOUBLE_QUOTE_TEXT ] }; - var FUNCTION_DEFINITION = { + const FUNCTION_DEFINITION = { className: 'function', - begin: /[a-z][^\n]*->/, returnBegin: true, end: /->/, + begin: /[a-z][^\n]*->/, + returnBegin: true, + end: /->/, contains: [ - hljs.inherit(hljs.TITLE_MODE, {starts: { - endsWithParent: true, - keywords: XL_KEYWORDS - }}) + hljs.inherit(hljs.TITLE_MODE, { + starts: { + endsWithParent: true, + keywords: XL_KEYWORDS + } + }) ] }; return { name: 'XL', - aliases: ['tao'], + aliases: [ 'tao' ], keywords: XL_KEYWORDS, contains: [ - hljs.C_LINE_COMMENT_MODE, - hljs.C_BLOCK_COMMENT_MODE, - DOUBLE_QUOTE_TEXT, - SINGLE_QUOTE_TEXT, - LONG_TEXT, - FUNCTION_DEFINITION, - IMPORT, - BASED_NUMBER, - hljs.NUMBER_MODE + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + DOUBLE_QUOTE_TEXT, + SINGLE_QUOTE_TEXT, + LONG_TEXT, + FUNCTION_DEFINITION, + IMPORT, + BASED_NUMBER, + hljs.NUMBER_MODE ] }; } diff --git a/src/languages/xml.js b/src/languages/xml.js index 7bc1379b6b..432c3ccd55 100644 --- a/src/languages/xml.js +++ b/src/languages/xml.js @@ -9,26 +9,33 @@ import * as regex from '../lib/regex.js'; /** @type LanguageFn */ export default function(hljs) { // Element names can contain letters, digits, hyphens, underscores, and periods - var TAG_NAME_RE = regex.concat(/[A-Z_]/, regex.optional(/[A-Z0-9_.-]+:/), /[A-Z0-9_.-]*/); - var XML_IDENT_RE = '[A-Za-z0-9\\._:-]+'; - var XML_ENTITIES = { + const TAG_NAME_RE = regex.concat(/[A-Z_]/, regex.optional(/[A-Z0-9_.-]+:/), /[A-Z0-9_.-]*/); + const XML_IDENT_RE = '[A-Za-z0-9\\._:-]+'; + const XML_ENTITIES = { className: 'symbol', begin: '&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;' }; - var XML_META_KEYWORDS = { - begin: '\\s', - contains:[ - { - className: 'meta-keyword', - begin: '#?[a-z_][a-z1-9_-]+', - illegal: '\\n', + const XML_META_KEYWORDS = { + begin: '\\s', + contains: [ + { + className: 'meta-keyword', + begin: '#?[a-z_][a-z1-9_-]+', + illegal: '\\n' } - ] + ] }; - var XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {begin: '\\(', end: '\\)'}); - var APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, {className: 'meta-string'}); - var QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'meta-string'}); - var TAG_INTERNALS = { + const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, { + begin: '\\(', + end: '\\)' + }); + const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { + className: 'meta-string' + }); + const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { + className: 'meta-string' + }); + const TAG_INTERNALS = { endsWithParent: true, illegal: /`]+/} + { + begin: /"/, + end: /"/, + contains: [ XML_ENTITIES ] + }, + { + begin: /'/, + end: /'/, + contains: [ XML_ENTITIES ] + }, + { + begin: /[^\s"'=<>`]+/ + } ] } ] @@ -57,34 +74,48 @@ export default function(hljs) { }; return { name: 'HTML, XML', - aliases: ['html', 'xhtml', 'rss', 'atom', 'xjb', 'xsd', 'xsl', 'plist', 'wsf', 'svg'], + aliases: [ + 'html', + 'xhtml', + 'rss', + 'atom', + 'xjb', + 'xsd', + 'xsl', + 'plist', + 'wsf', + 'svg' + ], case_insensitive: true, contains: [ { className: 'meta', - begin: '', + begin: '', relevance: 10, contains: [ - XML_META_KEYWORDS, - QUOTE_META_STRING_MODE, - APOS_META_STRING_MODE, - XML_META_PAR_KEYWORDS, - { - begin: '\\[', end: '\\]', - contains:[ - { - className: 'meta', - begin: '', - contains: [ - XML_META_KEYWORDS, - XML_META_PAR_KEYWORDS, - QUOTE_META_STRING_MODE, - APOS_META_STRING_MODE - ] - } - ] - } - ] + XML_META_KEYWORDS, + QUOTE_META_STRING_MODE, + APOS_META_STRING_MODE, + XML_META_PAR_KEYWORDS, + { + begin: '\\[', + end: '\\]', + contains: [ + { + className: 'meta', + begin: '', + contains: [ + XML_META_KEYWORDS, + XML_META_PAR_KEYWORDS, + QUOTE_META_STRING_MODE, + APOS_META_STRING_MODE + ] + } + ] + } + ] }, hljs.COMMENT( ''}, - {begin: '=', relevance: 0} + { + begin: ':-\\|-->' + }, + { + begin: '=', + relevance: 0 + } ] }; return { name: 'Mercury', - aliases: ['m', 'moo'], + aliases: [ + 'm', + 'moo' + ], keywords: KEYWORDS, contains: [ IMPLICATION, @@ -84,8 +108,12 @@ export default function(hljs) { hljs.NUMBER_MODE, ATOM, STRING, - {begin: /:-/}, // relevance booster - {begin: /\.$/} // relevance booster + { // relevance booster + begin: /:-/ + }, + { // relevance booster + begin: /\.$/ + } ] }; } diff --git a/src/languages/mipsasm.js b/src/languages/mipsasm.js index 6c76ed6da7..bd099d29e2 100644 --- a/src/languages/mipsasm.js +++ b/src/languages/mipsasm.js @@ -7,15 +7,15 @@ Category: assembler */ export default function(hljs) { - //local labels: %?[FB]?[AT]?\d{1,2}\w+ + // local labels: %?[FB]?[AT]?\d{1,2}\w+ return { name: 'MIPS Assembly', case_insensitive: true, - aliases: ['mips'], + aliases: [ 'mips' ], keywords: { $pattern: '\\.?' + hljs.IDENT_RE, meta: - //GNU preprocs + // GNU preprocs '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ', built_in: '$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ' + // integer registers @@ -33,7 +33,7 @@ export default function(hljs) { contains: [ { className: 'keyword', - begin: '\\b('+ //mnemonics + begin: '\\b(' + // mnemonics // 32-bit integer instructions 'addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|' + 'bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\\.hb)?|jr(\\.hb)?|lbu?|lhu?|' + @@ -52,7 +52,7 @@ export default function(hljs) { // system control instructions 'break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|' + 'rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|' + - 'tlti?u?|tnei?|wait|wrpgpr'+ + 'tlti?u?|tnei?|wait|wrpgpr' + ')', end: '\\s' }, @@ -68,24 +68,35 @@ export default function(hljs) { }, { className: 'title', - begin: '\\|', end: '\\|', + begin: '\\|', + end: '\\|', illegal: '\\n', relevance: 0 }, { className: 'number', variants: [ - {begin: '0x[0-9a-f]+'}, //hex - {begin: '\\b-?\\d+'} //bare number + { // hex + begin: '0x[0-9a-f]+' + }, + { // bare number + begin: '\\b-?\\d+' + } ], relevance: 0 }, { className: 'symbol', variants: [ - {begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU MIPS syntax - {begin: '^\\s*[0-9]+:'}, // numbered local labels - {begin: '[0-9]+[bf]' } // number local label reference (backwards, forwards) + { // GNU MIPS syntax + begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:' + }, + { // numbered local labels + begin: '^\\s*[0-9]+:' + }, + { // number local label reference (backwards, forwards) + begin: '[0-9]+[bf]' + } ], relevance: 0 } diff --git a/src/languages/mojolicious.js b/src/languages/mojolicious.js index 6ead3a629d..8e8ccd5228 100644 --- a/src/languages/mojolicious.js +++ b/src/languages/mojolicious.js @@ -15,12 +15,13 @@ export default function(hljs) { className: 'meta', begin: '^__(END|DATA)__$' }, - // mojolicious line + // mojolicious line { - begin: "^\\s*%{1,2}={0,2}", end: '$', + begin: "^\\s*%{1,2}={0,2}", + end: '$', subLanguage: 'perl' }, - // mojolicious block + // mojolicious block { begin: "<%{1,2}={0,2}", end: "={0,1}%>", diff --git a/src/languages/monkey.js b/src/languages/monkey.js index 713d4f6102..244f69a425 100644 --- a/src/languages/monkey.js +++ b/src/languages/monkey.js @@ -6,8 +6,9 @@ Website: https://blitzresearch.itch.io/monkey2 */ export default function(hljs) { - var NUMBER = { - className: 'number', relevance: 0, + const NUMBER = { + className: 'number', + relevance: 0, variants: [ { begin: '[$][a-fA-F0-9]+' @@ -42,15 +43,15 @@ export default function(hljs) { ), { className: 'function', - beginKeywords: 'function method', end: '[(=:]|$', + beginKeywords: 'function method', + end: '[(=:]|$', illegal: /\n/, - contains: [ - hljs.UNDERSCORE_TITLE_MODE - ] + contains: [ hljs.UNDERSCORE_TITLE_MODE ] }, { className: 'class', - beginKeywords: 'class interface', end: '$', + beginKeywords: 'class interface', + end: '$', contains: [ { beginKeywords: 'extends implements' @@ -64,19 +65,23 @@ export default function(hljs) { }, { className: 'meta', - begin: '\\s*#', end: '$', - keywords: {'meta-keyword': 'if else elseif endif end then'} + begin: '\\s*#', + end: '$', + keywords: { + 'meta-keyword': 'if else elseif endif end then' + } }, { className: 'meta', begin: '^\\s*strict\\b' }, { - beginKeywords: 'alias', end: '=', - contains: [hljs.UNDERSCORE_TITLE_MODE] + beginKeywords: 'alias', + end: '=', + contains: [ hljs.UNDERSCORE_TITLE_MODE ] }, hljs.QUOTE_STRING_MODE, NUMBER ] - } + }; } diff --git a/src/languages/moonscript.js b/src/languages/moonscript.js index b66d0105f7..edb6947209 100644 --- a/src/languages/moonscript.js +++ b/src/languages/moonscript.js @@ -8,7 +8,7 @@ Category: scripting */ export default function(hljs) { - var KEYWORDS = { + const KEYWORDS = { keyword: // Moonscript keywords 'if then not for in while do return else elseif break continue switch and or ' + @@ -21,25 +21,36 @@ export default function(hljs) { 'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' + 'io math os package string table' }; - var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*'; - var SUBST = { + const JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*'; + const SUBST = { className: 'subst', - begin: /#\{/, end: /\}/, + begin: /#\{/, + end: /\}/, keywords: KEYWORDS }; - var EXPRESSIONS = [ + const EXPRESSIONS = [ hljs.inherit(hljs.C_NUMBER_MODE, - {starts: {end: '(\\s*/)?', relevance: 0}}), // a number tries to eat the following slash to prevent treating it as a regexp + { + starts: { + end: '(\\s*/)?', + relevance: 0 + } + }), // a number tries to eat the following slash to prevent treating it as a regexp { className: 'string', variants: [ { - begin: /'/, end: /'/, - contains: [hljs.BACKSLASH_ESCAPE] + begin: /'/, + end: /'/, + contains: [ hljs.BACKSLASH_ESCAPE ] }, { - begin: /"/, end: /"/, - contains: [hljs.BACKSLASH_ESCAPE, SUBST] + begin: /"/, + end: /"/, + contains: [ + hljs.BACKSLASH_ESCAPE, + SUBST + ] } ] }, @@ -56,32 +67,42 @@ export default function(hljs) { ]; SUBST.contains = EXPRESSIONS; - var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE}); - var PARAMS_RE = '(\\(.*\\))?\\s*\\B[-=]>'; - var PARAMS = { + const TITLE = hljs.inherit(hljs.TITLE_MODE, { + begin: JS_IDENT_RE + }); + const PARAMS_RE = '(\\(.*\\))?\\s*\\B[-=]>'; + const PARAMS = { className: 'params', - begin: '\\([^\\(]', returnBegin: true, + begin: '\\([^\\(]', + returnBegin: true, /* We need another contained nameless mode to not have every nested pair of parens to be called "params" */ - contains: [{ - begin: /\(/, end: /\)/, - keywords: KEYWORDS, - contains: ['self'].concat(EXPRESSIONS) - }] + contains: [ + { + begin: /\(/, + end: /\)/, + keywords: KEYWORDS, + contains: [ 'self' ].concat(EXPRESSIONS) + } + ] }; return { name: 'MoonScript', - aliases: ['moon'], + aliases: [ 'moon' ], keywords: KEYWORDS, illegal: /\/\*/, contains: EXPRESSIONS.concat([ hljs.COMMENT('--', '$'), { - className: 'function', // function: -> => - begin: '^\\s*' + JS_IDENT_RE + '\\s*=\\s*' + PARAMS_RE, end: '[-=]>', + className: 'function', // function: -> => + begin: '^\\s*' + JS_IDENT_RE + '\\s*=\\s*' + PARAMS_RE, + end: '[-=]>', returnBegin: true, - contains: [TITLE, PARAMS] + contains: [ + TITLE, + PARAMS + ] }, { begin: /[\(,:=]\s*/, // anonymous function start @@ -89,9 +110,10 @@ export default function(hljs) { contains: [ { className: 'function', - begin: PARAMS_RE, end: '[-=]>', + begin: PARAMS_RE, + end: '[-=]>', returnBegin: true, - contains: [PARAMS] + contains: [ PARAMS ] } ] }, @@ -105,15 +127,17 @@ export default function(hljs) { beginKeywords: 'extends', endsWithParent: true, illegal: /[:="\[\]]/, - contains: [TITLE] + contains: [ TITLE ] }, TITLE ] }, { - className: 'name', // table - begin: JS_IDENT_RE + ':', end: ':', - returnBegin: true, returnEnd: true, + className: 'name', // table + begin: JS_IDENT_RE + ':', + end: ':', + returnBegin: true, + returnEnd: true, relevance: 0 } ]) diff --git a/src/languages/nginx.js b/src/languages/nginx.js index f32a2173fa..c6bddb6b64 100644 --- a/src/languages/nginx.js +++ b/src/languages/nginx.js @@ -7,15 +7,22 @@ Website: https://www.nginx.com */ export default function(hljs) { - var VAR = { + const VAR = { className: 'variable', variants: [ - {begin: /\$\d+/}, - {begin: /\$\{/, end: /\}/}, - {begin: /[$@]/ + hljs.UNDERSCORE_IDENT_RE} + { + begin: /\$\d+/ + }, + { + begin: /\$\{/, + end: /\}/ + }, + { + begin: /[$@]/ + hljs.UNDERSCORE_IDENT_RE + } ] }; - var DEFAULT = { + const DEFAULT = { endsWithParent: true, keywords: { $pattern: '[a-z/_]+', @@ -29,28 +36,55 @@ export default function(hljs) { hljs.HASH_COMMENT_MODE, { className: 'string', - contains: [hljs.BACKSLASH_ESCAPE, VAR], + contains: [ + hljs.BACKSLASH_ESCAPE, + VAR + ], variants: [ - {begin: /"/, end: /"/}, - {begin: /'/, end: /'/} + { + begin: /"/, + end: /"/ + }, + { + begin: /'/, + end: /'/ + } ] }, // this swallows entire URLs to avoid detecting numbers within { - begin: '([a-z]+):/', end: '\\s', endsWithParent: true, excludeEnd: true, - contains: [VAR] + begin: '([a-z]+):/', + end: '\\s', + endsWithParent: true, + excludeEnd: true, + contains: [ VAR ] }, { className: 'regexp', - contains: [hljs.BACKSLASH_ESCAPE, VAR], + contains: [ + hljs.BACKSLASH_ESCAPE, + VAR + ], variants: [ - {begin: "\\s\\^", end: "\\s|\\{|;", returnEnd: true}, + { + begin: "\\s\\^", + end: "\\s|\\{|;", + returnEnd: true + }, // regexp locations (~, ~*) - {begin: "~\\*?\\s+", end: "\\s|\\{|;", returnEnd: true}, + { + begin: "~\\*?\\s+", + end: "\\s|\\{|;", + returnEnd: true + }, // *.example.com - {begin: "\\*(\\.[a-z\\-]+)+"}, + { + begin: "\\*(\\.[a-z\\-]+)+" + }, // sub.example.* - {begin: "([a-z\\-]+\\.)+\\*"} + { + begin: "([a-z\\-]+\\.)+\\*" + } ] }, // IP @@ -70,11 +104,12 @@ export default function(hljs) { return { name: 'Nginx config', - aliases: ['nginxconf'], + aliases: [ 'nginxconf' ], contains: [ hljs.HASH_COMMENT_MODE, { - begin: hljs.UNDERSCORE_IDENT_RE + '\\s+\\{', returnBegin: true, + begin: hljs.UNDERSCORE_IDENT_RE + '\\s+\\{', + returnBegin: true, end: /\{/, contains: [ { @@ -85,7 +120,9 @@ export default function(hljs) { relevance: 0 }, { - begin: hljs.UNDERSCORE_IDENT_RE + '\\s', end: ';|\\{', returnBegin: true, + begin: hljs.UNDERSCORE_IDENT_RE + '\\s', + end: ';|\\{', + returnBegin: true, contains: [ { className: 'attribute', diff --git a/src/languages/nim.js b/src/languages/nim.js index 6c7e56bc87..3ff52fff3a 100644 --- a/src/languages/nim.js +++ b/src/languages/nim.js @@ -8,7 +8,7 @@ Category: system export default function(hljs) { return { name: 'Nim', - aliases: ['nim'], + aliases: [ 'nim' ], keywords: { keyword: 'addr and as asm bind block break case cast const continue converter ' + @@ -26,17 +26,24 @@ export default function(hljs) { 'cschar cshort cint csize clonglong cfloat cdouble clongdouble ' + 'cuchar cushort cuint culonglong cstringarray semistatic' }, - contains: [ { + contains: [ + { className: 'meta', // Actually pragma begin: /\{\./, end: /\.\}/, relevance: 10 - }, { + }, + { className: 'string', begin: /[a-zA-Z]\w*"/, end: /"/, - contains: [{begin: /""/}] - }, { + contains: [ + { + begin: /""/ + } + ] + }, + { className: 'string', begin: /([a-zA-Z]\w*)?"""/, end: /"""/ @@ -46,17 +53,26 @@ export default function(hljs) { className: 'type', begin: /\b[A-Z]\w+\b/, relevance: 0 - }, { + }, + { className: 'number', relevance: 0, variants: [ - {begin: /\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/}, - {begin: /\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/}, - {begin: /\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/}, - {begin: /\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/} + { + begin: /\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/ + }, + { + begin: /\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/ + }, + { + begin: /\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/ + }, + { + begin: /\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/ + } ] }, hljs.HASH_COMMENT_MODE ] - } + }; } diff --git a/src/languages/nix.js b/src/languages/nix.js index e36f760e1e..e1bddc2362 100644 --- a/src/languages/nix.js +++ b/src/languages/nix.js @@ -5,9 +5,8 @@ Description: Nix functional language Website: http://nixos.org/nix */ - export default function(hljs) { - var NIX_KEYWORDS = { + const NIX_KEYWORDS = { keyword: 'rec with let in inherit assert if else then', literal: @@ -16,14 +15,15 @@ export default function(hljs) { 'import abort baseNameOf dirOf isNull builtins map removeAttrs throw ' + 'toString derivation' }; - var ANTIQUOTE = { + const ANTIQUOTE = { className: 'subst', begin: /\$\{/, end: /\}/, keywords: NIX_KEYWORDS }; - var ATTRS = { - begin: /[a-zA-Z0-9-_]+(\s*=)/, returnBegin: true, + const ATTRS = { + begin: /[a-zA-Z0-9-_]+(\s*=)/, + returnBegin: true, relevance: 0, contains: [ { @@ -32,15 +32,21 @@ export default function(hljs) { } ] }; - var STRING = { + const STRING = { className: 'string', - contains: [ANTIQUOTE], + contains: [ ANTIQUOTE ], variants: [ - {begin: "''", end: "''"}, - {begin: '"', end: '"'} + { + begin: "''", + end: "''" + }, + { + begin: '"', + end: '"' + } ] }; - var EXPRESSIONS = [ + const EXPRESSIONS = [ hljs.NUMBER_MODE, hljs.HASH_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, @@ -50,7 +56,7 @@ export default function(hljs) { ANTIQUOTE.contains = EXPRESSIONS; return { name: 'Nix', - aliases: ["nixos"], + aliases: [ "nixos" ], keywords: NIX_KEYWORDS, contains: EXPRESSIONS }; diff --git a/src/languages/node-repl.js b/src/languages/node-repl.js index 1de130f204..55a849db3b 100644 --- a/src/languages/node-repl.js +++ b/src/languages/node-repl.js @@ -7,24 +7,29 @@ Category: scripting /** @type LanguageFn */ export default function(hljs) { - return { - name: 'Node REPL', - contains: [ - { - className: 'meta', + return { + name: 'Node REPL', + contains: [ + { + className: 'meta', + starts: { + // a space separates the REPL prefix from the actual code + // this is purely for cleaner HTML output + end: / |$/, starts: { - // a space separates the REPL prefix from the actual code - // this is purely for cleaner HTML output - end: / |$/, - starts: { - end: '$', subLanguage: 'javascript' - } - }, - variants: [ - { begin: /^>(?=[ ]|$)/ }, - { begin: /^\.\.\.(?=[ ]|$)/ } - ] + end: '$', + subLanguage: 'javascript' + } }, - ] - } - } + variants: [ + { + begin: /^>(?=[ ]|$)/ + }, + { + begin: /^\.\.\.(?=[ ]|$)/ + } + ] + } + ] + }; +} diff --git a/src/languages/nsis.js b/src/languages/nsis.js index 17cfc950b1..59956cbfaf 100644 --- a/src/languages/nsis.js +++ b/src/languages/nsis.js @@ -6,75 +6,78 @@ Website: https://nsis.sourceforge.io/Main_Page */ export default function(hljs) { - var CONSTANTS = { + const CONSTANTS = { className: 'variable', begin: /\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)/ }; - var DEFINES = { + const DEFINES = { // ${defines} className: 'variable', begin: /\$+\{[\w.:-]+\}/ }; - var VARIABLES = { + const VARIABLES = { // $variables className: 'variable', begin: /\$+\w+/, illegal: /\(\)\{\}/ }; - var LANGUAGES = { + const LANGUAGES = { // $(language_strings) className: 'variable', begin: /\$+\([\w^.:-]+\)/ }; - var PARAMETERS = { + const PARAMETERS = { // command parameters className: 'params', begin: '(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)' }; - var COMPILER = { + const COMPILER = { // !compiler_flags className: 'keyword', begin: /!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|searchparse|searchreplace|system|tempfile|undef|verbose|warning)/ }; - var METACHARS = { + const METACHARS = { // $\n, $\r, $\t, $$ className: 'meta', begin: /\$(\\[nrt]|\$)/ }; - var PLUGINS = { + const PLUGINS = { // plug::ins className: 'class', begin: /\w+::\w+/ }; - var STRING = { - className: 'string', - variants: [ - { - begin: '"', end: '"' - }, - { - begin: '\'', end: '\'' - }, - { - begin: '`', end: '`' - } - ], - illegal: /\n/, - contains: [ - METACHARS, - CONSTANTS, - DEFINES, - VARIABLES, - LANGUAGES - ] + const STRING = { + className: 'string', + variants: [ + { + begin: '"', + end: '"' + }, + { + begin: '\'', + end: '\'' + }, + { + begin: '`', + end: '`' + } + ], + illegal: /\n/, + contains: [ + METACHARS, + CONSTANTS, + DEFINES, + VARIABLES, + LANGUAGES + ] }; return { @@ -98,7 +101,8 @@ export default function(hljs) { ), { className: 'function', - beginKeywords: 'Function PageEx Section SectionGroup', end: '$' + beginKeywords: 'Function PageEx Section SectionGroup', + end: '$' }, STRING, COMPILER, diff --git a/src/languages/objectivec.js b/src/languages/objectivec.js index 9aaa4a5055..bb79180c6a 100644 --- a/src/languages/objectivec.js +++ b/src/languages/objectivec.js @@ -7,12 +7,12 @@ Category: common */ export default function(hljs) { - var API_CLASS = { + const API_CLASS = { className: 'built_in', - begin: '\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+', + begin: '\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+' }; - var IDENTIFIER_RE = /[a-zA-Z@][a-zA-Z0-9_]*/; - var OBJC_KEYWORDS = { + const IDENTIFIER_RE = /[a-zA-Z@][a-zA-Z0-9_]*/; + const OBJC_KEYWORDS = { $pattern: IDENTIFIER_RE, keyword: 'int float while char export sizeof typedef const struct for union ' + @@ -42,13 +42,19 @@ export default function(hljs) { built_in: 'BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once' }; - var CLASS_KEYWORDS = { + const CLASS_KEYWORDS = { $pattern: IDENTIFIER_RE, keyword: '@interface @class @protocol @implementation' }; return { name: 'Objective-C', - aliases: ['mm', 'objc', 'obj-c', 'obj-c++', 'objective-c++'], + aliases: [ + 'mm', + 'objc', + 'obj-c', + 'obj-c++', + 'objective-c++' + ], keywords: OBJC_KEYWORDS, illegal: '/, end: /$/, - illegal: '\\n', + begin: /<.*?>/, + end: /$/, + illegal: '\\n' }, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE @@ -92,14 +104,14 @@ export default function(hljs) { }, { className: 'class', - begin: '(' + CLASS_KEYWORDS.keyword.split(' ').join('|') + ')\\b', end: /(\{|$)/, excludeEnd: true, + begin: '(' + CLASS_KEYWORDS.keyword.split(' ').join('|') + ')\\b', + end: /(\{|$)/, + excludeEnd: true, keywords: CLASS_KEYWORDS, - contains: [ - hljs.UNDERSCORE_TITLE_MODE - ] + contains: [ hljs.UNDERSCORE_TITLE_MODE ] }, { - begin: '\\.'+hljs.UNDERSCORE_IDENT_RE, + begin: '\\.' + hljs.UNDERSCORE_IDENT_RE, relevance: 0 } ] diff --git a/src/languages/openscad.js b/src/languages/openscad.js index ff1f19b635..e03a2a6361 100644 --- a/src/languages/openscad.js +++ b/src/languages/openscad.js @@ -7,59 +7,73 @@ Category: scientific */ export default function(hljs) { - var SPECIAL_VARS = { - className: 'keyword', - begin: '\\$(f[asn]|t|vp[rtd]|children)' - }, - LITERALS = { - className: 'literal', - begin: 'false|true|PI|undef' - }, - NUMBERS = { - className: 'number', - begin: '\\b\\d+(\\.\\d+)?(e-?\\d+)?', //adds 1e5, 1e-10 - relevance: 0 - }, - STRING = hljs.inherit(hljs.QUOTE_STRING_MODE,{illegal: null}), - PREPRO = { - className: 'meta', - keywords: {'meta-keyword': 'include use'}, - begin: 'include|use <', - end: '>' - }, - PARAMS = { - className: 'params', - begin: '\\(', end: '\\)', - contains: ['self', NUMBERS, STRING, SPECIAL_VARS, LITERALS] - }, - MODIFIERS = { - begin: '[*!#%]', - relevance: 0 - }, - FUNCTIONS = { - className: 'function', - beginKeywords: 'module function', - end: /=|\{/, - contains: [PARAMS, hljs.UNDERSCORE_TITLE_MODE] - }; + const SPECIAL_VARS = { + className: 'keyword', + begin: '\\$(f[asn]|t|vp[rtd]|children)' + }; + const LITERALS = { + className: 'literal', + begin: 'false|true|PI|undef' + }; + const NUMBERS = { + className: 'number', + begin: '\\b\\d+(\\.\\d+)?(e-?\\d+)?', // adds 1e5, 1e-10 + relevance: 0 + }; + const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, { + illegal: null + }); + const PREPRO = { + className: 'meta', + keywords: { + 'meta-keyword': 'include use' + }, + begin: 'include|use <', + end: '>' + }; + const PARAMS = { + className: 'params', + begin: '\\(', + end: '\\)', + contains: [ + 'self', + NUMBERS, + STRING, + SPECIAL_VARS, + LITERALS + ] + }; + const MODIFIERS = { + begin: '[*!#%]', + relevance: 0 + }; + const FUNCTIONS = { + className: 'function', + beginKeywords: 'module function', + end: /=|\{/, + contains: [ + PARAMS, + hljs.UNDERSCORE_TITLE_MODE + ] + }; - return { - name: 'OpenSCAD', - aliases: ['scad'], - keywords: { - keyword: 'function module include use for intersection_for if else \\%', - literal: 'false true PI undef', - built_in: 'circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign' - }, - contains: [ - hljs.C_LINE_COMMENT_MODE, - hljs.C_BLOCK_COMMENT_MODE, - NUMBERS, - PREPRO, - STRING, - SPECIAL_VARS, - MODIFIERS, - FUNCTIONS - ] - } + return { + name: 'OpenSCAD', + aliases: [ 'scad' ], + keywords: { + keyword: 'function module include use for intersection_for if else \\%', + literal: 'false true PI undef', + built_in: 'circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign' + }, + contains: [ + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + NUMBERS, + PREPRO, + STRING, + SPECIAL_VARS, + MODIFIERS, + FUNCTIONS + ] + }; } diff --git a/src/languages/oxygene.js b/src/languages/oxygene.js index 0eda124f94..6eaef0d295 100644 --- a/src/languages/oxygene.js +++ b/src/languages/oxygene.js @@ -6,52 +6,65 @@ Website: https://www.elementscompiler.com/elements/default.aspx */ export default function(hljs) { - var OXYGENE_KEYWORDS = { + const OXYGENE_KEYWORDS = { $pattern: /\.?\w+/, - keyword: 'abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue '+ - 'create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false '+ - 'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited '+ - 'inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of '+ - 'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly '+ - 'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple '+ - 'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal '+ - 'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained' + keyword: + 'abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue ' + + 'create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false ' + + 'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited ' + + 'inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of ' + + 'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly ' + + 'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple ' + + 'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal ' + + 'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained' }; - var CURLY_COMMENT = hljs.COMMENT( + const CURLY_COMMENT = hljs.COMMENT( /\{/, /\}/, { relevance: 0 } ); - var PAREN_COMMENT = hljs.COMMENT( + const PAREN_COMMENT = hljs.COMMENT( '\\(\\*', '\\*\\)', { relevance: 10 } ); - var STRING = { + const STRING = { className: 'string', - begin: '\'', end: '\'', - contains: [{begin: '\'\''}] + begin: '\'', + end: '\'', + contains: [ + { + begin: '\'\'' + } + ] }; - var CHAR_STRING = { - className: 'string', begin: '(#\\d+)+' + const CHAR_STRING = { + className: 'string', + begin: '(#\\d+)+' }; - var FUNCTION = { + const FUNCTION = { className: 'function', - beginKeywords: 'function constructor destructor procedure method', end: '[:;]', + beginKeywords: 'function constructor destructor procedure method', + end: '[:;]', keywords: 'function constructor|10 destructor|10 procedure|10 method|10', contains: [ hljs.TITLE_MODE, { className: 'params', - begin: '\\(', end: '\\)', + begin: '\\(', + end: '\\)', keywords: OXYGENE_KEYWORDS, - contains: [STRING, CHAR_STRING] + contains: [ + STRING, + CHAR_STRING + ] }, - CURLY_COMMENT, PAREN_COMMENT + CURLY_COMMENT, + PAREN_COMMENT ] }; return { @@ -60,17 +73,24 @@ export default function(hljs) { keywords: OXYGENE_KEYWORDS, illegal: '("|\\$[G-Zg-z]|\\/\\*||->)', contains: [ - CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE, - STRING, CHAR_STRING, + CURLY_COMMENT, + PAREN_COMMENT, + hljs.C_LINE_COMMENT_MODE, + STRING, + CHAR_STRING, hljs.NUMBER_MODE, FUNCTION, { className: 'class', - begin: '=\\bclass\\b', end: 'end;', + begin: '=\\bclass\\b', + end: 'end;', keywords: OXYGENE_KEYWORDS, contains: [ - STRING, CHAR_STRING, - CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE, + STRING, + CHAR_STRING, + CURLY_COMMENT, + PAREN_COMMENT, + hljs.C_LINE_COMMENT_MODE, FUNCTION ] } From be85e40dde9e63feb365bd53b54ee37c65a156cf Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Thu, 12 Nov 2020 12:42:21 -0500 Subject: [PATCH 6/7] S, T, U --- .eslintrc.js | 2 +- src/languages/sas.js | 243 ++++++++-------- src/languages/scala.js | 54 ++-- src/languages/scilab.js | 37 ++- src/languages/shell.js | 4 +- src/languages/smali.js | 101 ++++++- src/languages/smalltalk.js | 18 +- src/languages/sml.js | 15 +- src/languages/sqf.js | 37 ++- src/languages/stan.js | 518 +++++++++++++++++++++++++++------- src/languages/stata.js | 15 +- src/languages/step21.js | 28 +- src/languages/subunit.js | 29 +- src/languages/taggerscript.js | 20 +- src/languages/tap.js | 29 +- src/languages/thrift.js | 16 +- src/languages/tp.js | 18 +- 17 files changed, 829 insertions(+), 355 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 74a3680ac5..3d7e7b9bf1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -69,7 +69,7 @@ module.exports = { // "object-curly-spacing": 1, // "key-spacing": "off", // "array-bracket-spacing": [1], - "array-bracket-newline": [0, { + "array-bracket-newline": [1, { multiline: true, minItems: 2 }], diff --git a/src/languages/sas.js b/src/languages/sas.js index a14677283e..bbe30e41c7 100644 --- a/src/languages/sas.js +++ b/src/languages/sas.js @@ -5,128 +5,131 @@ Description: Syntax Highlighting for SAS */ export default function(hljs) { + // Data step and PROC SQL statements + const SAS_KEYWORDS = + 'do if then else end until while ' + + '' + + 'abort array attrib by call cards cards4 catname continue ' + + 'datalines datalines4 delete delim delimiter display dm drop ' + + 'endsas error file filename footnote format goto in infile ' + + 'informat input keep label leave length libname link list ' + + 'lostcard merge missing modify options output out page put ' + + 'redirect remove rename replace retain return select set skip ' + + 'startsas stop title update waitsas where window x systask ' + + '' + + 'add and alter as cascade check create delete describe ' + + 'distinct drop foreign from group having index insert into in ' + + 'key like message modify msgtype not null on or order primary ' + + 'references reset restrict select set table unique update ' + + 'validate view where'; - // Data step and PROC SQL statements - var SAS_KEYWORDS = ''+ - 'do if then else end until while '+ - ''+ - 'abort array attrib by call cards cards4 catname continue '+ - 'datalines datalines4 delete delim delimiter display dm drop '+ - 'endsas error file filename footnote format goto in infile '+ - 'informat input keep label leave length libname link list '+ - 'lostcard merge missing modify options output out page put '+ - 'redirect remove rename replace retain return select set skip '+ - 'startsas stop title update waitsas where window x systask '+ - ''+ - 'add and alter as cascade check create delete describe '+ - 'distinct drop foreign from group having index insert into in '+ - 'key like message modify msgtype not null on or order primary '+ - 'references reset restrict select set table unique update '+ - 'validate view where'; + // Built-in SAS functions + const SAS_FUN = + 'abs|addr|airy|arcos|arsin|atan|attrc|attrn|band|' + + 'betainv|blshift|bnot|bor|brshift|bxor|byte|cdf|ceil|' + + 'cexist|cinv|close|cnonct|collate|compbl|compound|' + + 'compress|cos|cosh|css|curobs|cv|daccdb|daccdbsl|' + + 'daccsl|daccsyd|dacctab|dairy|date|datejul|datepart|' + + 'datetime|day|dclose|depdb|depdbsl|depdbsl|depsl|' + + 'depsl|depsyd|depsyd|deptab|deptab|dequote|dhms|dif|' + + 'digamma|dim|dinfo|dnum|dopen|doptname|doptnum|dread|' + + 'dropnote|dsname|erf|erfc|exist|exp|fappend|fclose|' + + 'fcol|fdelete|fetch|fetchobs|fexist|fget|fileexist|' + + 'filename|fileref|finfo|finv|fipname|fipnamel|' + + 'fipstate|floor|fnonct|fnote|fopen|foptname|foptnum|' + + 'fpoint|fpos|fput|fread|frewind|frlen|fsep|fuzz|' + + 'fwrite|gaminv|gamma|getoption|getvarc|getvarn|hbound|' + + 'hms|hosthelp|hour|ibessel|index|indexc|indexw|input|' + + 'inputc|inputn|int|intck|intnx|intrr|irr|jbessel|' + + 'juldate|kurtosis|lag|lbound|left|length|lgamma|' + + 'libname|libref|log|log10|log2|logpdf|logpmf|logsdf|' + + 'lowcase|max|mdy|mean|min|minute|mod|month|mopen|' + + 'mort|n|netpv|nmiss|normal|note|npv|open|ordinal|' + + 'pathname|pdf|peek|peekc|pmf|point|poisson|poke|' + + 'probbeta|probbnml|probchi|probf|probgam|probhypr|' + + 'probit|probnegb|probnorm|probt|put|putc|putn|qtr|' + + 'quote|ranbin|rancau|ranexp|rangam|range|rank|rannor|' + + 'ranpoi|rantbl|rantri|ranuni|repeat|resolve|reverse|' + + 'rewind|right|round|saving|scan|sdf|second|sign|' + + 'sin|sinh|skewness|soundex|spedis|sqrt|std|stderr|' + + 'stfips|stname|stnamel|substr|sum|symget|sysget|' + + 'sysmsg|sysprod|sysrc|system|tan|tanh|time|timepart|' + + 'tinv|tnonct|today|translate|tranwrd|trigamma|' + + 'trim|trimn|trunc|uniform|upcase|uss|var|varfmt|' + + 'varinfmt|varlabel|varlen|varname|varnum|varray|' + + 'varrayx|vartype|verify|vformat|vformatd|vformatdx|' + + 'vformatn|vformatnx|vformatw|vformatwx|vformatx|' + + 'vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|' + + 'vinformatn|vinformatnx|vinformatw|vinformatwx|' + + 'vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|' + + 'vnamex|vtype|vtypex|weekday|year|yyq|zipfips|zipname|' + + 'zipnamel|zipstate'; - // Built-in SAS functions - var SAS_FUN = ''+ - 'abs|addr|airy|arcos|arsin|atan|attrc|attrn|band|'+ - 'betainv|blshift|bnot|bor|brshift|bxor|byte|cdf|ceil|'+ - 'cexist|cinv|close|cnonct|collate|compbl|compound|'+ - 'compress|cos|cosh|css|curobs|cv|daccdb|daccdbsl|'+ - 'daccsl|daccsyd|dacctab|dairy|date|datejul|datepart|'+ - 'datetime|day|dclose|depdb|depdbsl|depdbsl|depsl|'+ - 'depsl|depsyd|depsyd|deptab|deptab|dequote|dhms|dif|'+ - 'digamma|dim|dinfo|dnum|dopen|doptname|doptnum|dread|'+ - 'dropnote|dsname|erf|erfc|exist|exp|fappend|fclose|'+ - 'fcol|fdelete|fetch|fetchobs|fexist|fget|fileexist|'+ - 'filename|fileref|finfo|finv|fipname|fipnamel|'+ - 'fipstate|floor|fnonct|fnote|fopen|foptname|foptnum|'+ - 'fpoint|fpos|fput|fread|frewind|frlen|fsep|fuzz|'+ - 'fwrite|gaminv|gamma|getoption|getvarc|getvarn|hbound|'+ - 'hms|hosthelp|hour|ibessel|index|indexc|indexw|input|'+ - 'inputc|inputn|int|intck|intnx|intrr|irr|jbessel|'+ - 'juldate|kurtosis|lag|lbound|left|length|lgamma|'+ - 'libname|libref|log|log10|log2|logpdf|logpmf|logsdf|'+ - 'lowcase|max|mdy|mean|min|minute|mod|month|mopen|'+ - 'mort|n|netpv|nmiss|normal|note|npv|open|ordinal|'+ - 'pathname|pdf|peek|peekc|pmf|point|poisson|poke|'+ - 'probbeta|probbnml|probchi|probf|probgam|probhypr|'+ - 'probit|probnegb|probnorm|probt|put|putc|putn|qtr|'+ - 'quote|ranbin|rancau|ranexp|rangam|range|rank|rannor|'+ - 'ranpoi|rantbl|rantri|ranuni|repeat|resolve|reverse|'+ - 'rewind|right|round|saving|scan|sdf|second|sign|'+ - 'sin|sinh|skewness|soundex|spedis|sqrt|std|stderr|'+ - 'stfips|stname|stnamel|substr|sum|symget|sysget|'+ - 'sysmsg|sysprod|sysrc|system|tan|tanh|time|timepart|'+ - 'tinv|tnonct|today|translate|tranwrd|trigamma|'+ - 'trim|trimn|trunc|uniform|upcase|uss|var|varfmt|'+ - 'varinfmt|varlabel|varlen|varname|varnum|varray|'+ - 'varrayx|vartype|verify|vformat|vformatd|vformatdx|'+ - 'vformatn|vformatnx|vformatw|vformatwx|vformatx|'+ - 'vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|'+ - 'vinformatn|vinformatnx|vinformatw|vinformatwx|'+ - 'vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|'+ - 'vnamex|vtype|vtypex|weekday|year|yyq|zipfips|zipname|'+ - 'zipnamel|zipstate'; + // Built-in macro functions + const SAS_MACRO_FUN = + 'bquote|nrbquote|cmpres|qcmpres|compstor|' + + 'datatyp|display|do|else|end|eval|global|goto|' + + 'if|index|input|keydef|label|left|length|let|' + + 'local|lowcase|macro|mend|nrbquote|nrquote|' + + 'nrstr|put|qcmpres|qleft|qlowcase|qscan|' + + 'qsubstr|qsysfunc|qtrim|quote|qupcase|scan|str|' + + 'substr|superq|syscall|sysevalf|sysexec|sysfunc|' + + 'sysget|syslput|sysprod|sysrc|sysrput|then|to|' + + 'trim|unquote|until|upcase|verify|while|window'; - // Built-in macro functions - var SAS_MACRO_FUN = 'bquote|nrbquote|cmpres|qcmpres|compstor|'+ - 'datatyp|display|do|else|end|eval|global|goto|'+ - 'if|index|input|keydef|label|left|length|let|'+ - 'local|lowcase|macro|mend|nrbquote|nrquote|'+ - 'nrstr|put|qcmpres|qleft|qlowcase|qscan|'+ - 'qsubstr|qsysfunc|qtrim|quote|qupcase|scan|str|'+ - 'substr|superq|syscall|sysevalf|sysexec|sysfunc|'+ - 'sysget|syslput|sysprod|sysrc|sysrput|then|to|'+ - 'trim|unquote|until|upcase|verify|while|window'; - - return { - name: 'SAS', - aliases: ['sas', 'SAS'], - case_insensitive: true, // SAS is case-insensitive - keywords: { - literal: - 'null missing _all_ _automatic_ _character_ _infile_ '+ - '_n_ _name_ _null_ _numeric_ _user_ _webout_', - meta: - SAS_KEYWORDS - }, - contains: [ - { - // Distinct highlight for proc , data, run, quit - className: 'keyword', - begin: /^\s*(proc [\w\d_]+|data|run|quit)[\s;]/ - }, - { - // Macro variables - className: 'variable', - begin: /&[a-zA-Z_&][a-zA-Z0-9_]*\.?/ - }, - { - // Special emphasis for datalines|cards - className: 'emphasis', - begin: /^\s*datalines|cards.*;/, - end: /^\s*;\s*$/ - }, - { // Built-in macro variables take precedence - className: 'built_in', - begin: '%(' + SAS_MACRO_FUN + ')' - }, - { - // User-defined macro functions highlighted after - className: 'name', - begin: /%[a-zA-Z_][a-zA-Z_0-9]*/ - }, - { - className: 'meta', - begin: '[^%](' + SAS_FUN + ')[\(]' - }, - { - className: 'string', - variants: [ - hljs.APOS_STRING_MODE, - hljs.QUOTE_STRING_MODE - ] - }, - hljs.COMMENT('\\*', ';'), - hljs.C_BLOCK_COMMENT_MODE + return { + name: 'SAS', + aliases: [ + 'sas', + 'SAS' + ], + case_insensitive: true, // SAS is case-insensitive + keywords: { + literal: + 'null missing _all_ _automatic_ _character_ _infile_ ' + + '_n_ _name_ _null_ _numeric_ _user_ _webout_', + meta: + SAS_KEYWORDS + }, + contains: [ + { + // Distinct highlight for proc , data, run, quit + className: 'keyword', + begin: /^\s*(proc [\w\d_]+|data|run|quit)[\s;]/ + }, + { + // Macro variables + className: 'variable', + begin: /&[a-zA-Z_&][a-zA-Z0-9_]*\.?/ + }, + { + // Special emphasis for datalines|cards + className: 'emphasis', + begin: /^\s*datalines|cards.*;/, + end: /^\s*;\s*$/ + }, + { // Built-in macro variables take precedence + className: 'built_in', + begin: '%(' + SAS_MACRO_FUN + ')' + }, + { + // User-defined macro functions highlighted after + className: 'name', + begin: /%[a-zA-Z_][a-zA-Z_0-9]*/ + }, + { + className: 'meta', + begin: '[^%](' + SAS_FUN + ')[\(]' + }, + { + className: 'string', + variants: [ + hljs.APOS_STRING_MODE, + hljs.QUOTE_STRING_MODE ] - }; + }, + hljs.COMMENT('\\*', ';'), + hljs.C_BLOCK_COMMENT_MODE + ] + }; } diff --git a/src/languages/scala.js b/src/languages/scala.js index c8336fa1c3..817d834512 100644 --- a/src/languages/scala.js +++ b/src/languages/scala.js @@ -7,63 +7,75 @@ Website: https://www.scala-lang.org */ export default function(hljs) { - - var ANNOTATION = { className: 'meta', begin: '@[A-Za-z]+' }; + const ANNOTATION = { + className: 'meta', + begin: '@[A-Za-z]+' + }; // used in strings for escaping/interpolation/substitution - var SUBST = { + const SUBST = { className: 'subst', variants: [ - {begin: '\\$[A-Za-z0-9_]+'}, - {begin: /\$\{/, end: /\}/} + { + begin: '\\$[A-Za-z0-9_]+' + }, + { + begin: /\$\{/, + end: /\}/ + } ] }; - var STRING = { + const STRING = { className: 'string', variants: [ { - begin: '"', end: '"', + begin: '"', + end: '"', illegal: '\\n', - contains: [hljs.BACKSLASH_ESCAPE] + contains: [ hljs.BACKSLASH_ESCAPE ] }, { - begin: '"""', end: '"""', + begin: '"""', + end: '"""', relevance: 10 }, { - begin: '[a-z]+"', end: '"', + begin: '[a-z]+"', + end: '"', illegal: '\\n', - contains: [hljs.BACKSLASH_ESCAPE, SUBST] + contains: [ hljs.BACKSLASH_ESCAPE, + SUBST ] }, { className: 'string', - begin: '[a-z]+"""', end: '"""', - contains: [SUBST], + begin: '[a-z]+"""', + end: '"""', + contains: [ SUBST ], relevance: 10 } ] }; - var SYMBOL = { + const SYMBOL = { className: 'symbol', begin: '\'\\w[\\w\\d_]*(?!\')' }; - var TYPE = { + const TYPE = { className: 'type', begin: '\\b[A-Z][A-Za-z0-9_]*', relevance: 0 }; - var NAME = { + const NAME = { className: 'title', begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/, relevance: 0 }; - var CLASS = { + const CLASS = { className: 'class', beginKeywords: 'class object trait type', end: /[:={\[\n;]/, @@ -81,7 +93,7 @@ export default function(hljs) { excludeBegin: true, excludeEnd: true, relevance: 0, - contains: [TYPE] + contains: [ TYPE ] }, { className: 'params', @@ -90,18 +102,18 @@ export default function(hljs) { excludeBegin: true, excludeEnd: true, relevance: 0, - contains: [TYPE] + contains: [ TYPE ] }, NAME ] }; - var METHOD = { + const METHOD = { className: 'function', beginKeywords: 'def', end: /[:={\[(\n;]/, excludeEnd: true, - contains: [NAME] + contains: [ NAME ] }; return { diff --git a/src/languages/scilab.js b/src/languages/scilab.js index 9e03c9d536..3703b424d2 100644 --- a/src/languages/scilab.js +++ b/src/languages/scilab.js @@ -8,52 +8,59 @@ Category: scientific */ export default function(hljs) { - - var COMMON_CONTAINS = [ + const COMMON_CONTAINS = [ hljs.C_NUMBER_MODE, { className: 'string', - begin: '\'|\"', end: '\'|\"', - contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}] + begin: '\'|\"', + end: '\'|\"', + contains: [ hljs.BACKSLASH_ESCAPE, + { + begin: '\'\'' + } ] } ]; return { name: 'Scilab', - aliases: ['sci'], + aliases: [ 'sci' ], keywords: { $pattern: /%?\w+/, - keyword: 'abort break case clear catch continue do elseif else endfunction end for function '+ + keyword: 'abort break case clear catch continue do elseif else endfunction end for function ' + 'global if pause return resume select try then while', literal: '%f %F %t %T %pi %eps %inf %nan %e %i %z %s', built_in: // Scilab has more than 2000 functions. Just list the most commons - 'abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error '+ - 'exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty '+ - 'isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log '+ - 'max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real '+ - 'round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan '+ + 'abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error ' + + 'exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty ' + + 'isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log ' + + 'max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real ' + + 'round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan ' + 'type typename warning zeros matrix' }, illegal: '("|#|/\\*|\\s+/\\w+)', contains: [ { className: 'function', - beginKeywords: 'function', end: '$', + beginKeywords: 'function', + end: '$', contains: [ hljs.UNDERSCORE_TITLE_MODE, { className: 'params', - begin: '\\(', end: '\\)' + begin: '\\(', + end: '\\)' } ] }, { - begin: '[a-zA-Z_][a-zA-Z_0-9]*(\'+[\\.\']*|[\\.\']+)', end: '', + begin: '[a-zA-Z_][a-zA-Z_0-9]*(\'+[\\.\']*|[\\.\']+)', + end: '', relevance: 0 }, { - begin: '\\[', end: '\\]\'*[\\.\']*', + begin: '\\[', + end: '\\]\'*[\\.\']*', relevance: 0, contains: COMMON_CONTAINS }, diff --git a/src/languages/shell.js b/src/languages/shell.js index 2c713da19d..63acc5e1e0 100644 --- a/src/languages/shell.js +++ b/src/languages/shell.js @@ -10,7 +10,7 @@ Audit: 2020 export default function(hljs) { return { name: 'Shell Session', - aliases: ['console'], + aliases: [ 'console' ], contains: [ { className: 'meta', @@ -24,5 +24,5 @@ export default function(hljs) { } } ] - } + }; } diff --git a/src/languages/smali.js b/src/languages/smali.js index b23072f5aa..716b7559b2 100644 --- a/src/languages/smali.js +++ b/src/languages/smali.js @@ -6,16 +6,77 @@ Website: https://github.com/JesusFreke/smali */ export default function(hljs) { - var smali_instr_low_prio = ['add', 'and', 'cmp', 'cmpg', 'cmpl', 'const', 'div', 'double', 'float', 'goto', 'if', 'int', 'long', 'move', 'mul', 'neg', 'new', 'nop', 'not', 'or', 'rem', 'return', 'shl', 'shr', 'sput', 'sub', 'throw', 'ushr', 'xor']; - var smali_instr_high_prio = ['aget', 'aput', 'array', 'check', 'execute', 'fill', 'filled', 'goto/16', 'goto/32', 'iget', 'instance', 'invoke', 'iput', 'monitor', 'packed', 'sget', 'sparse']; - var smali_keywords = ['transient', 'constructor', 'abstract', 'final', 'synthetic', 'public', 'private', 'protected', 'static', 'bridge', 'system']; + const smali_instr_low_prio = [ + 'add', + 'and', + 'cmp', + 'cmpg', + 'cmpl', + 'const', + 'div', + 'double', + 'float', + 'goto', + 'if', + 'int', + 'long', + 'move', + 'mul', + 'neg', + 'new', + 'nop', + 'not', + 'or', + 'rem', + 'return', + 'shl', + 'shr', + 'sput', + 'sub', + 'throw', + 'ushr', + 'xor' + ]; + const smali_instr_high_prio = [ + 'aget', + 'aput', + 'array', + 'check', + 'execute', + 'fill', + 'filled', + 'goto/16', + 'goto/32', + 'iget', + 'instance', + 'invoke', + 'iput', + 'monitor', + 'packed', + 'sget', + 'sparse' + ]; + const smali_keywords = [ + 'transient', + 'constructor', + 'abstract', + 'final', + 'synthetic', + 'public', + 'private', + 'protected', + 'static', + 'bridge', + 'system' + ]; return { name: 'Smali', - aliases: ['smali'], + aliases: [ 'smali' ], contains: [ { className: 'string', - begin: '"', end: '"', + begin: '"', + end: '"', relevance: 0 }, hljs.COMMENT( @@ -28,26 +89,36 @@ export default function(hljs) { { className: 'keyword', variants: [ - {begin: '\\s*\\.end\\s[a-zA-Z0-9]*'}, - {begin: '^[ ]*\\.[a-zA-Z]*', relevance: 0}, - {begin: '\\s:[a-zA-Z_0-9]*', relevance: 0}, - {begin: '\\s(' + smali_keywords.join('|') + ')'} + { + begin: '\\s*\\.end\\s[a-zA-Z0-9]*' + }, + { + begin: '^[ ]*\\.[a-zA-Z]*', + relevance: 0 + }, + { + begin: '\\s:[a-zA-Z_0-9]*', + relevance: 0 + }, + { + begin: '\\s(' + smali_keywords.join('|') + ')' + } ] }, { className: 'built_in', - variants : [ + variants: [ { - begin: '\\s('+smali_instr_low_prio.join('|')+')\\s' + begin: '\\s(' + smali_instr_low_prio.join('|') + ')\\s' }, { - begin: '\\s('+smali_instr_low_prio.join('|')+')((-|/)[a-zA-Z0-9]+)+\\s', + begin: '\\s(' + smali_instr_low_prio.join('|') + ')((-|/)[a-zA-Z0-9]+)+\\s', relevance: 10 }, { - begin: '\\s('+smali_instr_high_prio.join('|')+')((-|/)[a-zA-Z0-9]+)*\\s', + begin: '\\s(' + smali_instr_high_prio.join('|') + ')((-|/)[a-zA-Z0-9]+)*\\s', relevance: 10 - }, + } ] }, { @@ -56,7 +127,7 @@ export default function(hljs) { relevance: 0 }, { - begin: '[vp][0-9]+', + begin: '[vp][0-9]+' } ] }; diff --git a/src/languages/smalltalk.js b/src/languages/smalltalk.js index bd578dd492..fa926d1128 100644 --- a/src/languages/smalltalk.js +++ b/src/languages/smalltalk.js @@ -6,18 +6,18 @@ Website: https://en.wikipedia.org/wiki/Smalltalk */ export default function(hljs) { - var VAR_IDENT_RE = '[a-z][a-zA-Z0-9_]*'; - var CHAR = { + const VAR_IDENT_RE = '[a-z][a-zA-Z0-9_]*'; + const CHAR = { className: 'string', begin: '\\$.{1}' }; - var SYMBOL = { + const SYMBOL = { className: 'symbol', begin: '#' + hljs.UNDERSCORE_IDENT_RE }; return { name: 'Smalltalk', - aliases: ['st'], + aliases: [ 'st' ], keywords: 'self super nil true false thisContext', // only 6 contains: [ hljs.COMMENT('"', '"'), @@ -39,12 +39,16 @@ export default function(hljs) { // explosion under V8. It effectively means `| var1 var2 ... |` with // whitespace adjacent to `|` being optional. begin: '\\|[ ]*' + VAR_IDENT_RE + '([ ]+' + VAR_IDENT_RE + ')*[ ]*\\|', - returnBegin: true, end: /\|/, + returnBegin: true, + end: /\|/, illegal: /\S/, - contains: [{begin: '(\\|[ ]*)?' + VAR_IDENT_RE}] + contains: [ { + begin: '(\\|[ ]*)?' + VAR_IDENT_RE + } ] }, { - begin: '#\\(', end: '\\)', + begin: '#\\(', + end: '\\)', contains: [ hljs.APOS_STRING_MODE, CHAR, diff --git a/src/languages/sml.js b/src/languages/sml.js index 1d14b7a4ec..1c5d6d2774 100644 --- a/src/languages/sml.js +++ b/src/languages/sml.js @@ -9,7 +9,7 @@ Category: functional export default function(hljs) { return { name: 'SML (Standard ML)', - aliases: ['ml'], + aliases: [ 'ml' ], keywords: { $pattern: '[a-z_]\\w*!?', keyword: @@ -35,7 +35,7 @@ export default function(hljs) { '\\(\\*', '\\*\\)', { - contains: ['self'] + contains: [ 'self' ] } ), { /* type variable */ @@ -52,11 +52,16 @@ export default function(hljs) { begin: '\\b[A-Z][\\w\']*', relevance: 0 }, - { /* don't color identifiers, but safely catch all identifiers with '*/ + { /* don't color identifiers, but safely catch all identifiers with ' */ begin: '[a-z_]\\w*\'[\\w\']*' }, - hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}), - hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}), + hljs.inherit(hljs.APOS_STRING_MODE, { + className: 'string', + relevance: 0 + }), + hljs.inherit(hljs.QUOTE_STRING_MODE, { + illegal: null + }), { className: 'number', begin: diff --git a/src/languages/sqf.js b/src/languages/sqf.js index da37dab248..8db3c34ccc 100644 --- a/src/languages/sqf.js +++ b/src/languages/sqf.js @@ -9,54 +9,65 @@ Category: scripting export default function(hljs) { // In SQF, a variable start with _ - var VARIABLE = { + const VARIABLE = { className: 'variable', begin: /\b_+[a-zA-Z_]\w*/ }; // In SQF, a function should fit myTag_fnc_myFunction pattern // https://community.bistudio.com/wiki/Functions_Library_(Arma_3)#Adding_a_Function - var FUNCTION = { + const FUNCTION = { className: 'title', begin: /[a-zA-Z][a-zA-Z0-9]+_fnc_\w*/ }; // In SQF strings, quotes matching the start are escaped by adding a consecutive. // Example of single escaped quotes: " "" " and ' '' '. - var STRINGS = { + const STRINGS = { className: 'string', variants: [ { begin: '"', end: '"', - contains: [{begin: '""', relevance: 0}] + contains: [ { + begin: '""', + relevance: 0 + } ] }, { begin: '\'', end: '\'', - contains: [{begin: '\'\'', relevance: 0}] + contains: [ { + begin: '\'\'', + relevance: 0 + } ] } ] }; // list of keywords from: // https://community.bistudio.com/wiki/PreProcessor_Commands - var PREPROCESSOR = { + const PREPROCESSOR = { className: 'meta', - begin: /#\s*[a-z]+\b/, end: /$/, + begin: /#\s*[a-z]+\b/, + end: /$/, keywords: { 'meta-keyword': 'define undef ifdef ifndef else endif include' }, contains: [ { - begin: /\\\n/, relevance: 0 + begin: /\\\n/, + relevance: 0 }, - hljs.inherit(STRINGS, {className: 'meta-string'}), + hljs.inherit(STRINGS, { + className: 'meta-string' + }), { className: 'meta-string', - begin: /<[^\n>]*>/, end: /$/, - illegal: '\\n', + begin: /<[^\n>]*>/, + end: /$/, + illegal: '\\n' }, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE @@ -65,7 +76,7 @@ export default function(hljs) { return { name: 'SQF', - aliases: ['sqf'], + aliases: [ 'sqf' ], case_insensitive: true, keywords: { keyword: @@ -420,7 +431,7 @@ export default function(hljs) { literal: 'blufor civilian configNull controlNull displayNull east endl false grpNull independent lineBreak ' + 'locationNull nil objNull opfor pi resistance scriptNull sideAmbientLife sideEmpty sideLogic ' + - 'sideUnknown taskNull teamMemberNull true west', + 'sideUnknown taskNull teamMemberNull true west' }, contains: [ hljs.C_LINE_COMMENT_MODE, diff --git a/src/languages/stan.js b/src/languages/stan.js index b3a8a499d8..f7b7cc925a 100644 --- a/src/languages/stan.js +++ b/src/languages/stan.js @@ -8,7 +8,7 @@ Category: scientific export default function(hljs) { // variable names cannot conflict with block identifiers - var BLOCKS = [ + const BLOCKS = [ 'functions', 'model', 'data', @@ -17,7 +17,7 @@ export default function(hljs) { 'transformed', 'generated' ]; - var STATEMENTS = [ + const STATEMENTS = [ 'for', 'in', 'if', @@ -27,7 +27,7 @@ export default function(hljs) { 'continue', 'return' ]; - var SPECIAL_FUNCTIONS = [ + const SPECIAL_FUNCTIONS = [ 'print', 'reject', 'increment_log_prob|10', @@ -36,7 +36,7 @@ export default function(hljs) { 'integrate_ode_bdf|10', 'algebra_solver' ]; - var VAR_TYPES = [ + const VAR_TYPES = [ 'int', 'real', 'vector', @@ -52,107 +52,425 @@ export default function(hljs) { 'cov_matrix|10', 'void' ]; - var FUNCTIONS = [ - 'Phi', 'Phi_approx', 'abs', 'acos', 'acosh', 'algebra_solver', 'append_array', - 'append_col', 'append_row', 'asin', 'asinh', 'atan', 'atan2', 'atanh', - 'bernoulli_cdf', 'bernoulli_lccdf', 'bernoulli_lcdf', 'bernoulli_logit_lpmf', - 'bernoulli_logit_rng', 'bernoulli_lpmf', 'bernoulli_rng', 'bessel_first_kind', - 'bessel_second_kind', 'beta_binomial_cdf', 'beta_binomial_lccdf', - 'beta_binomial_lcdf', 'beta_binomial_lpmf', 'beta_binomial_rng', 'beta_cdf', - 'beta_lccdf', 'beta_lcdf', 'beta_lpdf', 'beta_rng', 'binary_log_loss', - 'binomial_cdf', 'binomial_coefficient_log', 'binomial_lccdf', 'binomial_lcdf', - 'binomial_logit_lpmf', 'binomial_lpmf', 'binomial_rng', 'block', - 'categorical_logit_lpmf', 'categorical_logit_rng', 'categorical_lpmf', - 'categorical_rng', 'cauchy_cdf', 'cauchy_lccdf', 'cauchy_lcdf', 'cauchy_lpdf', - 'cauchy_rng', 'cbrt', 'ceil', 'chi_square_cdf', 'chi_square_lccdf', - 'chi_square_lcdf', 'chi_square_lpdf', 'chi_square_rng', 'cholesky_decompose', - 'choose', 'col', 'cols', 'columns_dot_product', 'columns_dot_self', 'cos', - 'cosh', 'cov_exp_quad', 'crossprod', 'csr_extract_u', 'csr_extract_v', - 'csr_extract_w', 'csr_matrix_times_vector', 'csr_to_dense_matrix', - 'cumulative_sum', 'determinant', 'diag_matrix', 'diag_post_multiply', - 'diag_pre_multiply', 'diagonal', 'digamma', 'dims', 'dirichlet_lpdf', - 'dirichlet_rng', 'distance', 'dot_product', 'dot_self', - 'double_exponential_cdf', 'double_exponential_lccdf', 'double_exponential_lcdf', - 'double_exponential_lpdf', 'double_exponential_rng', 'e', 'eigenvalues_sym', - 'eigenvectors_sym', 'erf', 'erfc', 'exp', 'exp2', 'exp_mod_normal_cdf', - 'exp_mod_normal_lccdf', 'exp_mod_normal_lcdf', 'exp_mod_normal_lpdf', - 'exp_mod_normal_rng', 'expm1', 'exponential_cdf', 'exponential_lccdf', - 'exponential_lcdf', 'exponential_lpdf', 'exponential_rng', 'fabs', - 'falling_factorial', 'fdim', 'floor', 'fma', 'fmax', 'fmin', 'fmod', - 'frechet_cdf', 'frechet_lccdf', 'frechet_lcdf', 'frechet_lpdf', 'frechet_rng', - 'gamma_cdf', 'gamma_lccdf', 'gamma_lcdf', 'gamma_lpdf', 'gamma_p', 'gamma_q', - 'gamma_rng', 'gaussian_dlm_obs_lpdf', 'get_lp', 'gumbel_cdf', 'gumbel_lccdf', - 'gumbel_lcdf', 'gumbel_lpdf', 'gumbel_rng', 'head', 'hypergeometric_lpmf', - 'hypergeometric_rng', 'hypot', 'inc_beta', 'int_step', 'integrate_ode', - 'integrate_ode_bdf', 'integrate_ode_rk45', 'inv', 'inv_Phi', - 'inv_chi_square_cdf', 'inv_chi_square_lccdf', 'inv_chi_square_lcdf', - 'inv_chi_square_lpdf', 'inv_chi_square_rng', 'inv_cloglog', 'inv_gamma_cdf', - 'inv_gamma_lccdf', 'inv_gamma_lcdf', 'inv_gamma_lpdf', 'inv_gamma_rng', - 'inv_logit', 'inv_sqrt', 'inv_square', 'inv_wishart_lpdf', 'inv_wishart_rng', - 'inverse', 'inverse_spd', 'is_inf', 'is_nan', 'lbeta', 'lchoose', 'lgamma', - 'lkj_corr_cholesky_lpdf', 'lkj_corr_cholesky_rng', 'lkj_corr_lpdf', - 'lkj_corr_rng', 'lmgamma', 'lmultiply', 'log', 'log10', 'log1m', 'log1m_exp', - 'log1m_inv_logit', 'log1p', 'log1p_exp', 'log2', 'log_determinant', - 'log_diff_exp', 'log_falling_factorial', 'log_inv_logit', 'log_mix', - 'log_rising_factorial', 'log_softmax', 'log_sum_exp', 'logistic_cdf', - 'logistic_lccdf', 'logistic_lcdf', 'logistic_lpdf', 'logistic_rng', 'logit', - 'lognormal_cdf', 'lognormal_lccdf', 'lognormal_lcdf', 'lognormal_lpdf', - 'lognormal_rng', 'machine_precision', 'matrix_exp', 'max', 'mdivide_left_spd', - 'mdivide_left_tri_low', 'mdivide_right_spd', 'mdivide_right_tri_low', 'mean', - 'min', 'modified_bessel_first_kind', 'modified_bessel_second_kind', - 'multi_gp_cholesky_lpdf', 'multi_gp_lpdf', 'multi_normal_cholesky_lpdf', - 'multi_normal_cholesky_rng', 'multi_normal_lpdf', 'multi_normal_prec_lpdf', - 'multi_normal_rng', 'multi_student_t_lpdf', 'multi_student_t_rng', - 'multinomial_lpmf', 'multinomial_rng', 'multiply_log', - 'multiply_lower_tri_self_transpose', 'neg_binomial_2_cdf', - 'neg_binomial_2_lccdf', 'neg_binomial_2_lcdf', 'neg_binomial_2_log_lpmf', - 'neg_binomial_2_log_rng', 'neg_binomial_2_lpmf', 'neg_binomial_2_rng', - 'neg_binomial_cdf', 'neg_binomial_lccdf', 'neg_binomial_lcdf', - 'neg_binomial_lpmf', 'neg_binomial_rng', 'negative_infinity', 'normal_cdf', - 'normal_lccdf', 'normal_lcdf', 'normal_lpdf', 'normal_rng', 'not_a_number', - 'num_elements', 'ordered_logistic_lpmf', 'ordered_logistic_rng', 'owens_t', - 'pareto_cdf', 'pareto_lccdf', 'pareto_lcdf', 'pareto_lpdf', 'pareto_rng', - 'pareto_type_2_cdf', 'pareto_type_2_lccdf', 'pareto_type_2_lcdf', - 'pareto_type_2_lpdf', 'pareto_type_2_rng', 'pi', 'poisson_cdf', 'poisson_lccdf', - 'poisson_lcdf', 'poisson_log_lpmf', 'poisson_log_rng', 'poisson_lpmf', - 'poisson_rng', 'positive_infinity', 'pow', 'print', 'prod', 'qr_Q', 'qr_R', - 'quad_form', 'quad_form_diag', 'quad_form_sym', 'rank', 'rayleigh_cdf', - 'rayleigh_lccdf', 'rayleigh_lcdf', 'rayleigh_lpdf', 'rayleigh_rng', 'reject', - 'rep_array', 'rep_matrix', 'rep_row_vector', 'rep_vector', 'rising_factorial', - 'round', 'row', 'rows', 'rows_dot_product', 'rows_dot_self', - 'scaled_inv_chi_square_cdf', 'scaled_inv_chi_square_lccdf', - 'scaled_inv_chi_square_lcdf', 'scaled_inv_chi_square_lpdf', - 'scaled_inv_chi_square_rng', 'sd', 'segment', 'sin', 'singular_values', 'sinh', - 'size', 'skew_normal_cdf', 'skew_normal_lccdf', 'skew_normal_lcdf', - 'skew_normal_lpdf', 'skew_normal_rng', 'softmax', 'sort_asc', 'sort_desc', - 'sort_indices_asc', 'sort_indices_desc', 'sqrt', 'sqrt2', 'square', - 'squared_distance', 'step', 'student_t_cdf', 'student_t_lccdf', - 'student_t_lcdf', 'student_t_lpdf', 'student_t_rng', 'sub_col', 'sub_row', - 'sum', 'tail', 'tan', 'tanh', 'target', 'tcrossprod', 'tgamma', 'to_array_1d', - 'to_array_2d', 'to_matrix', 'to_row_vector', 'to_vector', 'trace', - 'trace_gen_quad_form', 'trace_quad_form', 'trigamma', 'trunc', 'uniform_cdf', - 'uniform_lccdf', 'uniform_lcdf', 'uniform_lpdf', 'uniform_rng', 'variance', - 'von_mises_lpdf', 'von_mises_rng', 'weibull_cdf', 'weibull_lccdf', - 'weibull_lcdf', 'weibull_lpdf', 'weibull_rng', 'wiener_lpdf', 'wishart_lpdf', + const FUNCTIONS = [ + 'Phi', + 'Phi_approx', + 'abs', + 'acos', + 'acosh', + 'algebra_solver', + 'append_array', + 'append_col', + 'append_row', + 'asin', + 'asinh', + 'atan', + 'atan2', + 'atanh', + 'bernoulli_cdf', + 'bernoulli_lccdf', + 'bernoulli_lcdf', + 'bernoulli_logit_lpmf', + 'bernoulli_logit_rng', + 'bernoulli_lpmf', + 'bernoulli_rng', + 'bessel_first_kind', + 'bessel_second_kind', + 'beta_binomial_cdf', + 'beta_binomial_lccdf', + 'beta_binomial_lcdf', + 'beta_binomial_lpmf', + 'beta_binomial_rng', + 'beta_cdf', + 'beta_lccdf', + 'beta_lcdf', + 'beta_lpdf', + 'beta_rng', + 'binary_log_loss', + 'binomial_cdf', + 'binomial_coefficient_log', + 'binomial_lccdf', + 'binomial_lcdf', + 'binomial_logit_lpmf', + 'binomial_lpmf', + 'binomial_rng', + 'block', + 'categorical_logit_lpmf', + 'categorical_logit_rng', + 'categorical_lpmf', + 'categorical_rng', + 'cauchy_cdf', + 'cauchy_lccdf', + 'cauchy_lcdf', + 'cauchy_lpdf', + 'cauchy_rng', + 'cbrt', + 'ceil', + 'chi_square_cdf', + 'chi_square_lccdf', + 'chi_square_lcdf', + 'chi_square_lpdf', + 'chi_square_rng', + 'cholesky_decompose', + 'choose', + 'col', + 'cols', + 'columns_dot_product', + 'columns_dot_self', + 'cos', + 'cosh', + 'cov_exp_quad', + 'crossprod', + 'csr_extract_u', + 'csr_extract_v', + 'csr_extract_w', + 'csr_matrix_times_vector', + 'csr_to_dense_matrix', + 'cumulative_sum', + 'determinant', + 'diag_matrix', + 'diag_post_multiply', + 'diag_pre_multiply', + 'diagonal', + 'digamma', + 'dims', + 'dirichlet_lpdf', + 'dirichlet_rng', + 'distance', + 'dot_product', + 'dot_self', + 'double_exponential_cdf', + 'double_exponential_lccdf', + 'double_exponential_lcdf', + 'double_exponential_lpdf', + 'double_exponential_rng', + 'e', + 'eigenvalues_sym', + 'eigenvectors_sym', + 'erf', + 'erfc', + 'exp', + 'exp2', + 'exp_mod_normal_cdf', + 'exp_mod_normal_lccdf', + 'exp_mod_normal_lcdf', + 'exp_mod_normal_lpdf', + 'exp_mod_normal_rng', + 'expm1', + 'exponential_cdf', + 'exponential_lccdf', + 'exponential_lcdf', + 'exponential_lpdf', + 'exponential_rng', + 'fabs', + 'falling_factorial', + 'fdim', + 'floor', + 'fma', + 'fmax', + 'fmin', + 'fmod', + 'frechet_cdf', + 'frechet_lccdf', + 'frechet_lcdf', + 'frechet_lpdf', + 'frechet_rng', + 'gamma_cdf', + 'gamma_lccdf', + 'gamma_lcdf', + 'gamma_lpdf', + 'gamma_p', + 'gamma_q', + 'gamma_rng', + 'gaussian_dlm_obs_lpdf', + 'get_lp', + 'gumbel_cdf', + 'gumbel_lccdf', + 'gumbel_lcdf', + 'gumbel_lpdf', + 'gumbel_rng', + 'head', + 'hypergeometric_lpmf', + 'hypergeometric_rng', + 'hypot', + 'inc_beta', + 'int_step', + 'integrate_ode', + 'integrate_ode_bdf', + 'integrate_ode_rk45', + 'inv', + 'inv_Phi', + 'inv_chi_square_cdf', + 'inv_chi_square_lccdf', + 'inv_chi_square_lcdf', + 'inv_chi_square_lpdf', + 'inv_chi_square_rng', + 'inv_cloglog', + 'inv_gamma_cdf', + 'inv_gamma_lccdf', + 'inv_gamma_lcdf', + 'inv_gamma_lpdf', + 'inv_gamma_rng', + 'inv_logit', + 'inv_sqrt', + 'inv_square', + 'inv_wishart_lpdf', + 'inv_wishart_rng', + 'inverse', + 'inverse_spd', + 'is_inf', + 'is_nan', + 'lbeta', + 'lchoose', + 'lgamma', + 'lkj_corr_cholesky_lpdf', + 'lkj_corr_cholesky_rng', + 'lkj_corr_lpdf', + 'lkj_corr_rng', + 'lmgamma', + 'lmultiply', + 'log', + 'log10', + 'log1m', + 'log1m_exp', + 'log1m_inv_logit', + 'log1p', + 'log1p_exp', + 'log2', + 'log_determinant', + 'log_diff_exp', + 'log_falling_factorial', + 'log_inv_logit', + 'log_mix', + 'log_rising_factorial', + 'log_softmax', + 'log_sum_exp', + 'logistic_cdf', + 'logistic_lccdf', + 'logistic_lcdf', + 'logistic_lpdf', + 'logistic_rng', + 'logit', + 'lognormal_cdf', + 'lognormal_lccdf', + 'lognormal_lcdf', + 'lognormal_lpdf', + 'lognormal_rng', + 'machine_precision', + 'matrix_exp', + 'max', + 'mdivide_left_spd', + 'mdivide_left_tri_low', + 'mdivide_right_spd', + 'mdivide_right_tri_low', + 'mean', + 'min', + 'modified_bessel_first_kind', + 'modified_bessel_second_kind', + 'multi_gp_cholesky_lpdf', + 'multi_gp_lpdf', + 'multi_normal_cholesky_lpdf', + 'multi_normal_cholesky_rng', + 'multi_normal_lpdf', + 'multi_normal_prec_lpdf', + 'multi_normal_rng', + 'multi_student_t_lpdf', + 'multi_student_t_rng', + 'multinomial_lpmf', + 'multinomial_rng', + 'multiply_log', + 'multiply_lower_tri_self_transpose', + 'neg_binomial_2_cdf', + 'neg_binomial_2_lccdf', + 'neg_binomial_2_lcdf', + 'neg_binomial_2_log_lpmf', + 'neg_binomial_2_log_rng', + 'neg_binomial_2_lpmf', + 'neg_binomial_2_rng', + 'neg_binomial_cdf', + 'neg_binomial_lccdf', + 'neg_binomial_lcdf', + 'neg_binomial_lpmf', + 'neg_binomial_rng', + 'negative_infinity', + 'normal_cdf', + 'normal_lccdf', + 'normal_lcdf', + 'normal_lpdf', + 'normal_rng', + 'not_a_number', + 'num_elements', + 'ordered_logistic_lpmf', + 'ordered_logistic_rng', + 'owens_t', + 'pareto_cdf', + 'pareto_lccdf', + 'pareto_lcdf', + 'pareto_lpdf', + 'pareto_rng', + 'pareto_type_2_cdf', + 'pareto_type_2_lccdf', + 'pareto_type_2_lcdf', + 'pareto_type_2_lpdf', + 'pareto_type_2_rng', + 'pi', + 'poisson_cdf', + 'poisson_lccdf', + 'poisson_lcdf', + 'poisson_log_lpmf', + 'poisson_log_rng', + 'poisson_lpmf', + 'poisson_rng', + 'positive_infinity', + 'pow', + 'print', + 'prod', + 'qr_Q', + 'qr_R', + 'quad_form', + 'quad_form_diag', + 'quad_form_sym', + 'rank', + 'rayleigh_cdf', + 'rayleigh_lccdf', + 'rayleigh_lcdf', + 'rayleigh_lpdf', + 'rayleigh_rng', + 'reject', + 'rep_array', + 'rep_matrix', + 'rep_row_vector', + 'rep_vector', + 'rising_factorial', + 'round', + 'row', + 'rows', + 'rows_dot_product', + 'rows_dot_self', + 'scaled_inv_chi_square_cdf', + 'scaled_inv_chi_square_lccdf', + 'scaled_inv_chi_square_lcdf', + 'scaled_inv_chi_square_lpdf', + 'scaled_inv_chi_square_rng', + 'sd', + 'segment', + 'sin', + 'singular_values', + 'sinh', + 'size', + 'skew_normal_cdf', + 'skew_normal_lccdf', + 'skew_normal_lcdf', + 'skew_normal_lpdf', + 'skew_normal_rng', + 'softmax', + 'sort_asc', + 'sort_desc', + 'sort_indices_asc', + 'sort_indices_desc', + 'sqrt', + 'sqrt2', + 'square', + 'squared_distance', + 'step', + 'student_t_cdf', + 'student_t_lccdf', + 'student_t_lcdf', + 'student_t_lpdf', + 'student_t_rng', + 'sub_col', + 'sub_row', + 'sum', + 'tail', + 'tan', + 'tanh', + 'target', + 'tcrossprod', + 'tgamma', + 'to_array_1d', + 'to_array_2d', + 'to_matrix', + 'to_row_vector', + 'to_vector', + 'trace', + 'trace_gen_quad_form', + 'trace_quad_form', + 'trigamma', + 'trunc', + 'uniform_cdf', + 'uniform_lccdf', + 'uniform_lcdf', + 'uniform_lpdf', + 'uniform_rng', + 'variance', + 'von_mises_lpdf', + 'von_mises_rng', + 'weibull_cdf', + 'weibull_lccdf', + 'weibull_lcdf', + 'weibull_lpdf', + 'weibull_rng', + 'wiener_lpdf', + 'wishart_lpdf', 'wishart_rng' ]; - var DISTRIBUTIONS = [ - 'bernoulli', 'bernoulli_logit', 'beta', 'beta_binomial', 'binomial', - 'binomial_logit', 'categorical', 'categorical_logit', 'cauchy', 'chi_square', - 'dirichlet', 'double_exponential', 'exp_mod_normal', 'exponential', 'frechet', - 'gamma', 'gaussian_dlm_obs', 'gumbel', 'hypergeometric', 'inv_chi_square', - 'inv_gamma', 'inv_wishart', 'lkj_corr', 'lkj_corr_cholesky', 'logistic', - 'lognormal', 'multi_gp', 'multi_gp_cholesky', 'multi_normal', - 'multi_normal_cholesky', 'multi_normal_prec', 'multi_student_t', 'multinomial', - 'neg_binomial', 'neg_binomial_2', 'neg_binomial_2_log', 'normal', - 'ordered_logistic', 'pareto', 'pareto_type_2', 'poisson', 'poisson_log', - 'rayleigh', 'scaled_inv_chi_square', 'skew_normal', 'student_t', 'uniform', - 'von_mises', 'weibull', 'wiener', 'wishart' + const DISTRIBUTIONS = [ + 'bernoulli', + 'bernoulli_logit', + 'beta', + 'beta_binomial', + 'binomial', + 'binomial_logit', + 'categorical', + 'categorical_logit', + 'cauchy', + 'chi_square', + 'dirichlet', + 'double_exponential', + 'exp_mod_normal', + 'exponential', + 'frechet', + 'gamma', + 'gaussian_dlm_obs', + 'gumbel', + 'hypergeometric', + 'inv_chi_square', + 'inv_gamma', + 'inv_wishart', + 'lkj_corr', + 'lkj_corr_cholesky', + 'logistic', + 'lognormal', + 'multi_gp', + 'multi_gp_cholesky', + 'multi_normal', + 'multi_normal_cholesky', + 'multi_normal_prec', + 'multi_student_t', + 'multinomial', + 'neg_binomial', + 'neg_binomial_2', + 'neg_binomial_2_log', + 'normal', + 'ordered_logistic', + 'pareto', + 'pareto_type_2', + 'poisson', + 'poisson_log', + 'rayleigh', + 'scaled_inv_chi_square', + 'skew_normal', + 'student_t', + 'uniform', + 'von_mises', + 'weibull', + 'wiener', + 'wishart' ]; return { name: 'Stan', - aliases: ['stanfuncs'], + aliases: [ 'stanfuncs' ], keywords: { $pattern: hljs.IDENT_RE, title: BLOCKS.join(' '), @@ -224,5 +542,5 @@ export default function(hljs) { relevance: 0 } ] - } + }; } diff --git a/src/languages/stata.js b/src/languages/stata.js index 08e431eb74..4f0b0a70ed 100644 --- a/src/languages/stata.js +++ b/src/languages/stata.js @@ -14,10 +14,13 @@ Category: scientific export default function(hljs) { return { name: 'Stata', - aliases: ['do', 'ado'], + aliases: [ + 'do', + 'ado' + ], case_insensitive: true, keywords: 'if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey bias binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 bubble bubbleplot ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d|0 datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e|0 ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error esize est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 forest forestplot form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate funnel funnelplot g|0 gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h|0 hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l|0 la lab labbe labbeplot labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m|0 ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize menl meqparse mer merg merge meta mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n|0 nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trimfill trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u|0 unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5', - contains: [ + contains: [ { className: 'symbol', begin: /`[a-zA-Z0-9_]+'/ @@ -29,8 +32,12 @@ export default function(hljs) { { className: 'string', variants: [ - {begin: '`"[^\r\n]*?"\''}, - {begin: '"[^\r\n"]*"'} + { + begin: '`"[^\r\n]*?"\'' + }, + { + begin: '"[^\r\n"]*"' + } ] }, diff --git a/src/languages/step21.js b/src/languages/step21.js index 562f919137..3362d957eb 100644 --- a/src/languages/step21.js +++ b/src/languages/step21.js @@ -6,17 +6,17 @@ Website: https://en.wikipedia.org/wiki/ISO_10303-21 */ export default function(hljs) { - var STEP21_IDENT_RE = '[A-Z_][A-Z0-9_.]*'; - var STEP21_KEYWORDS = { + const STEP21_IDENT_RE = '[A-Z_][A-Z0-9_.]*'; + const STEP21_KEYWORDS = { $pattern: STEP21_IDENT_RE, keyword: 'HEADER ENDSEC DATA' }; - var STEP21_START = { + const STEP21_START = { className: 'meta', begin: 'ISO-10303-21;', relevance: 10 }; - var STEP21_CLOSE = { + const STEP21_CLOSE = { className: 'meta', begin: 'END-ISO-10303-21;', relevance: 10 @@ -24,7 +24,11 @@ export default function(hljs) { return { name: 'STEP Part 21', - aliases: ['p21', 'step', 'stp'], + aliases: [ + 'p21', + 'step', + 'stp' + ], case_insensitive: true, // STEP 21 is case insensitive in theory, in practice all non-comments are capitalized. keywords: STEP21_KEYWORDS, contains: [ @@ -34,17 +38,23 @@ export default function(hljs) { hljs.C_BLOCK_COMMENT_MODE, hljs.COMMENT('/\\*\\*!', '\\*/'), hljs.C_NUMBER_MODE, - hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}), - hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}), + hljs.inherit(hljs.APOS_STRING_MODE, { + illegal: null + }), + hljs.inherit(hljs.QUOTE_STRING_MODE, { + illegal: null + }), { className: 'string', - begin: "'", end: "'" + begin: "'", + end: "'" }, { className: 'symbol', variants: [ { - begin: '#', end: '\\d+', + begin: '#', + end: '\\d+', illegal: '\\W' } ] diff --git a/src/languages/subunit.js b/src/languages/subunit.js index 68313215b6..f0ca3c6ffa 100644 --- a/src/languages/subunit.js +++ b/src/languages/subunit.js @@ -5,27 +5,36 @@ Website: https://pypi.org/project/python-subunit/ */ export default function(hljs) { - var DETAILS = { + const DETAILS = { className: 'string', - begin: '\\[\n(multipart)?', end: '\\]\n' + begin: '\\[\n(multipart)?', + end: '\\]\n' }; - var TIME = { + const TIME = { className: 'string', begin: '\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}\.\\d+Z' }; - var PROGRESSVALUE = { + const PROGRESSVALUE = { className: 'string', begin: '(\\+|-)\\d+' }; - var KEYWORDS = { + const KEYWORDS = { className: 'keyword', relevance: 10, variants: [ - { begin: '^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?' }, - { begin: '^progress(:?)(\\s+)?(pop|push)?' }, - { begin: '^tags:' }, - { begin: '^time:' } - ], + { + begin: '^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?' + }, + { + begin: '^progress(:?)(\\s+)?(pop|push)?' + }, + { + begin: '^tags:' + }, + { + begin: '^time:' + } + ] }; return { name: 'SubUnit', diff --git a/src/languages/taggerscript.js b/src/languages/taggerscript.js index 41521df26f..c1caa33401 100644 --- a/src/languages/taggerscript.js +++ b/src/languages/taggerscript.js @@ -5,35 +5,35 @@ Description: Syntax Highlighting for the Tagger Script as used by MusicBrainz Pi Website: https://picard.musicbrainz.org */ export default function(hljs) { - - var COMMENT = { + const COMMENT = { className: 'comment', begin: /\$noop\(/, end: /\)/, - contains: [{ + contains: [ { begin: /\(/, end: /\)/, - contains: ['self', { - begin: /\\./ - }] - }], + contains: [ 'self', + { + begin: /\\./ + } ] + } ], relevance: 10 }; - var FUNCTION = { + const FUNCTION = { className: 'keyword', begin: /\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*/, end: /\(/, excludeEnd: true }; - var VARIABLE = { + const VARIABLE = { className: 'variable', begin: /%[_a-zA-Z0-9:]*/, end: '%' }; - var ESCAPE_SEQUENCE = { + const ESCAPE_SEQUENCE = { className: 'symbol', begin: /\\./ }; diff --git a/src/languages/tap.js b/src/languages/tap.js index 0365cb1ebb..99fa07a8c1 100644 --- a/src/languages/tap.js +++ b/src/languages/tap.js @@ -16,29 +16,38 @@ export default function(hljs) { { className: 'meta', variants: [ - { begin: '^TAP version (\\d+)$' }, - { begin: '^1\\.\\.(\\d+)$' } - ], + { + begin: '^TAP version (\\d+)$' + }, + { + begin: '^1\\.\\.(\\d+)$' + } + ] }, // YAML block { - begin: /---$/, end: '\\.\\.\\.$', + begin: /---$/, + end: '\\.\\.\\.$', subLanguage: 'yaml', relevance: 0 }, - // testcase number + // testcase number { className: 'number', begin: ' (\\d+) ' }, - // testcase status and description + // testcase status and description { className: 'symbol', variants: [ - { begin: '^ok' }, - { begin: '^not ok' } - ], - }, + { + begin: '^ok' + }, + { + begin: '^not ok' + } + ] + } ] }; } diff --git a/src/languages/thrift.js b/src/languages/thrift.js index a2652c123d..9338e06e2a 100644 --- a/src/languages/thrift.js +++ b/src/languages/thrift.js @@ -7,7 +7,7 @@ Category: protocols */ export default function(hljs) { - var BUILT_IN_TYPES = 'bool byte i16 i32 i64 double string binary'; + const BUILT_IN_TYPES = 'bool byte i16 i32 i64 double string binary'; return { name: 'Thrift', keywords: { @@ -25,18 +25,24 @@ export default function(hljs) { hljs.C_BLOCK_COMMENT_MODE, { className: 'class', - beginKeywords: 'struct enum service exception', end: /\{/, + beginKeywords: 'struct enum service exception', + end: /\{/, illegal: /\n/, contains: [ hljs.inherit(hljs.TITLE_MODE, { - starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title + // hack: eating everything after the first title + starts: { + endsWithParent: true, + excludeEnd: true + } }) ] }, { - begin: '\\b(set|list|map)\\s*<', end: '>', + begin: '\\b(set|list|map)\\s*<', + end: '>', keywords: BUILT_IN_TYPES, - contains: ['self'] + contains: [ 'self' ] } ] }; diff --git a/src/languages/tp.js b/src/languages/tp.js index eec5fdde2c..babad4a6e0 100644 --- a/src/languages/tp.js +++ b/src/languages/tp.js @@ -4,30 +4,31 @@ Author: Jay Strybis Description: FANUC TP programming language (TPP). */ - export default function(hljs) { - var TPID = { + const TPID = { className: 'number', begin: '[1-9][0-9]*', /* no leading zeros */ relevance: 0 }; - var TPLABEL = { + const TPLABEL = { className: 'symbol', begin: ':[^\\]]+' }; - var TPDATA = { + const TPDATA = { className: 'built_in', begin: '(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|' + - 'TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[', end: '\\]', + 'TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[', + end: '\\]', contains: [ 'self', TPID, TPLABEL ] }; - var TPIO = { + const TPIO = { className: 'built_in', - begin: '(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[', end: '\\]', + begin: '(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[', + end: '\\]', contains: [ 'self', TPID, @@ -79,7 +80,8 @@ export default function(hljs) { hljs.QUOTE_STRING_MODE, { className: 'string', - begin: '\'', end: '\'' + begin: '\'', + end: '\'' }, hljs.C_NUMBER_MODE, { From c75dbcbb308965275565b07792ba7a47f25b44b0 Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Thu, 12 Nov 2020 13:15:20 -0500 Subject: [PATCH 7/7] P, Q, R --- src/languages/parser3.js | 11 +- src/languages/pf.js | 14 +- src/languages/pgsql.js | 532 ++++++++++++++++++++------------- src/languages/php-template.js | 32 +- src/languages/plaintext.js | 13 +- src/languages/pony.js | 30 +- src/languages/powershell.js | 251 +++++++++++----- src/languages/profile.js | 17 +- src/languages/prolog.js | 43 +-- src/languages/puppet.js | 81 +++-- src/languages/purebasic.js | 16 +- src/languages/python-repl.js | 17 +- src/languages/q.js | 41 +-- src/languages/qml.js | 139 +++++---- src/languages/reasonml.js | 88 +++--- src/languages/roboconf.js | 13 +- src/languages/routeros.js | 30 +- src/languages/rsl.js | 9 +- src/languages/ruleslanguage.js | 91 +++--- src/languages/rust.js | 70 +++-- 20 files changed, 967 insertions(+), 571 deletions(-) diff --git a/src/languages/parser3.js b/src/languages/parser3.js index e300fc4109..737d9248d5 100644 --- a/src/languages/parser3.js +++ b/src/languages/parser3.js @@ -7,16 +7,17 @@ Category: template */ export default function(hljs) { - var CURLY_SUBCOMMENT = hljs.COMMENT( + const CURLY_SUBCOMMENT = hljs.COMMENT( /\{/, /\}/, { - contains: ['self'] + contains: [ 'self' ] } ); return { name: 'Parser3', - subLanguage: 'xml', relevance: 0, + subLanguage: 'xml', + relevance: 0, contains: [ hljs.COMMENT('^#', '$'), hljs.COMMENT( @@ -24,9 +25,7 @@ export default function(hljs) { /\}/, { relevance: 10, - contains: [ - CURLY_SUBCOMMENT - ] + contains: [ CURLY_SUBCOMMENT ] } ), { diff --git a/src/languages/pf.js b/src/languages/pf.js index 6c16cac0b0..301050fbd4 100644 --- a/src/languages/pf.js +++ b/src/languages/pf.js @@ -7,22 +7,24 @@ Category: config */ export default function(hljs) { - var MACRO = { + const MACRO = { className: 'variable', begin: /\$[\w\d#@][\w\d_]*/ }; - var TABLE = { + const TABLE = { className: 'variable', - begin: /<(?!\/)/, end: />/ + begin: /<(?!\/)/, + end: />/ }; - var QUOTE_STRING = { + const QUOTE_STRING = { className: 'string', - begin: /"/, end: /"/ + begin: /"/, + end: /"/ }; return { name: 'Packet Filter config', - aliases: ['pf.conf'], + aliases: [ 'pf.conf' ], keywords: { $pattern: /[a-z0-9_<>-]+/, built_in: /* block match pass are "actions" in pf.conf(5), the rest are diff --git a/src/languages/pgsql.js b/src/languages/pgsql.js index 78a0744924..9858da526f 100644 --- a/src/languages/pgsql.js +++ b/src/languages/pgsql.js @@ -17,12 +17,12 @@ Description: */ export default function(hljs) { - var COMMENT_MODE = hljs.COMMENT('--', '$'); - var UNQUOTED_IDENT = '[a-zA-Z_][a-zA-Z_0-9$]*'; - var DOLLAR_STRING = '\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$'; - var LABEL = '<<\\s*' + UNQUOTED_IDENT + '\\s*>>'; + const COMMENT_MODE = hljs.COMMENT('--', '$'); + const UNQUOTED_IDENT = '[a-zA-Z_][a-zA-Z_0-9$]*'; + const DOLLAR_STRING = '\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$'; + const LABEL = '<<\\s*' + UNQUOTED_IDENT + '\\s*>>'; - var SQL_KW = + const SQL_KW = // https://www.postgresql.org/docs/11/static/sql-keywords-appendix.html // https://www.postgresql.org/docs/11/static/sql-commands.html // SQL commands (starting words) @@ -68,16 +68,16 @@ export default function(hljs) { // actually literals, but look better this way (due to IS TRUE, IS FALSE, ISNULL etc) 'TRUE FALSE NAN INFINITY '; - var ROLE_ATTRS = // only those not in keywrods already + const ROLE_ATTRS = // only those not in keywrods already 'SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT ' + 'LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS '; - var PLPGSQL_KW = + const PLPGSQL_KW = 'ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS ' + 'STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT ' + 'OPEN '; - var TYPES = + const TYPES = // https://www.postgresql.org/docs/11/static/datatype.html 'BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR ' + 'CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 ' + @@ -93,20 +93,20 @@ export default function(hljs) { // OID-types 'OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 ' + 'REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ';// + - // some types from standard extensions - 'HSTORE|10 LO LTREE|10 '; + // some types from standard extensions + 'HSTORE|10 LO LTREE|10 '; - var TYPES_RE = + const TYPES_RE = TYPES.trim() - .split(' ') - .map( function(val) { return val.split('|')[0]; } ) - .join('|'); + .split(' ') + .map(function(val) { return val.split('|')[0]; }) + .join('|'); - var SQL_BI = + const SQL_BI = 'CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP ' + 'CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC '; - var PLPGSQL_BI = + const PLPGSQL_BI = 'FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 ' + 'TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ' + // get diagnostics @@ -114,7 +114,7 @@ export default function(hljs) { 'PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 ' + 'PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 '; - var PLPGSQL_EXCEPTIONS = + const PLPGSQL_EXCEPTIONS = // exceptions https://www.postgresql.org/docs/current/static/errcodes-appendix.html 'SQLSTATE SQLERRM|10 ' + 'SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING ' + @@ -192,7 +192,7 @@ export default function(hljs) { 'RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED ' + 'INDEX_CORRUPTED '; - var FUNCTIONS = + const FUNCTIONS = // https://www.postgresql.org/docs/11/static/functions-aggregate.html 'ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG ' + 'JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG ' + @@ -283,224 +283,348 @@ export default function(hljs) { // 'GROUPING CAST '; - var FUNCTIONS_RE = + const FUNCTIONS_RE = FUNCTIONS.trim() - .split(' ') - .map( function(val) { return val.split('|')[0]; } ) - .join('|'); + .split(' ') + .map(function(val) { return val.split('|')[0]; }) + .join('|'); - return { - name: 'PostgreSQL', - aliases: ['postgres','postgresql'], - case_insensitive: true, - keywords: { - keyword: + return { + name: 'PostgreSQL', + aliases: [ + 'postgres', + 'postgresql' + ], + case_insensitive: true, + keywords: { + keyword: SQL_KW + PLPGSQL_KW + ROLE_ATTRS, - built_in: - SQL_BI + PLPGSQL_BI + PLPGSQL_EXCEPTIONS, - }, - // Forbid some cunstructs from other languages to improve autodetect. In fact - // "[a-z]:" is legal (as part of array slice), but improbabal. - illegal: /:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/, - contains: [ - // special handling of some words, which are reserved only in some contexts - { - className: 'keyword', - variants: [ - { begin: /\bTEXT\s*SEARCH\b/ }, - { begin: /\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/ }, - { begin: /\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/ }, - { begin: /\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/ }, - { begin: /\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/ }, - { begin: /\bNULLS\s+(FIRST|LAST)\b/ }, - { begin: /\bEVENT\s+TRIGGER\b/ }, - { begin: /\b(MAPPING|OR)\s+REPLACE\b/ }, - { begin: /\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/ }, - { begin: /\b(SHARE|EXCLUSIVE)\s+MODE\b/ }, - { begin: /\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/ }, - { begin: /\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/ }, - { begin: /\bPRESERVE\s+ROWS\b/ }, - { begin: /\bDISCARD\s+PLANS\b/ }, - { begin: /\bREFERENCING\s+(OLD|NEW)\b/ }, - { begin: /\bSKIP\s+LOCKED\b/ }, - { begin: /\bGROUPING\s+SETS\b/ }, - { begin: /\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/ }, - { begin: /\b(WITH|WITHOUT)\s+HOLD\b/ }, - { begin: /\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/ }, - { begin: /\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/ }, - { begin: /\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/ }, - { begin: /\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/ }, - { begin: /\bIS\s+(NOT\s+)?UNKNOWN\b/ }, - { begin: /\bSECURITY\s+LABEL\b/ }, - { begin: /\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/ }, - { begin: /\bWITH\s+(NO\s+)?DATA\b/ }, - { begin: /\b(FOREIGN|SET)\s+DATA\b/ }, - { begin: /\bSET\s+(CATALOG|CONSTRAINTS)\b/ }, - { begin: /\b(WITH|FOR)\s+ORDINALITY\b/ }, - { begin: /\bIS\s+(NOT\s+)?DOCUMENT\b/ }, - { begin: /\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/ }, - { begin: /\b(STRIP|PRESERVE)\s+WHITESPACE\b/ }, - { begin: /\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/ }, - { begin: /\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/ }, - { begin: /\bAT\s+TIME\s+ZONE\b/ }, - { begin: /\bGRANTED\s+BY\b/ }, - { begin: /\bRETURN\s+(QUERY|NEXT)\b/ }, - { begin: /\b(ATTACH|DETACH)\s+PARTITION\b/ }, - { begin: /\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/ }, - { begin: /\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/ }, - { begin: /\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/ } - ] - }, - // functions named as keywords, followed by '(' - { - begin: /\b(FORMAT|FAMILY|VERSION)\s*\(/, - //keywords: { built_in: 'FORMAT FAMILY VERSION' } - }, - // INCLUDE ( ... ) in index_parameters in CREATE TABLE - { - begin: /\bINCLUDE\s*\(/, - keywords: 'INCLUDE' - }, - // not highlight RANGE if not in frame_clause (not 100% correct, but seems satisfactory) - { - begin: /\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/ - }, - // disable highlighting in commands CREATE AGGREGATE/COLLATION/DATABASE/OPERTOR/TEXT SEARCH .../TYPE - // and in PL/pgSQL RAISE ... USING - { - begin: /\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/ - }, - // PG_smth; HAS_some_PRIVILEGE - { - //className: 'built_in', - begin: /\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/, - relevance: 10 + built_in: + SQL_BI + PLPGSQL_BI + PLPGSQL_EXCEPTIONS + }, + // Forbid some cunstructs from other languages to improve autodetect. In fact + // "[a-z]:" is legal (as part of array slice), but improbabal. + illegal: /:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/, + contains: [ + // special handling of some words, which are reserved only in some contexts + { + className: 'keyword', + variants: [ + { + begin: /\bTEXT\s*SEARCH\b/ }, - // extract { - begin: /\bEXTRACT\s*\(/, - end: /\bFROM\b/, - returnEnd: true, - keywords: { - //built_in: 'EXTRACT', - type: 'CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS ' + - 'MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR ' + - 'TIMEZONE_MINUTE WEEK YEAR' - } + begin: /\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/ }, - // xmlelement, xmlpi - special NAME { - begin: /\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/, - keywords: { - //built_in: 'XMLELEMENT XMLPI', - keyword: 'NAME' - } + begin: /\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/ }, - // xmlparse, xmlserialize { - begin: /\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/, - keywords: { - //built_in: 'XMLPARSE XMLSERIALIZE', - keyword: 'DOCUMENT CONTENT' - } + begin: /\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/ }, - // Sequences. We actually skip everything between CACHE|INCREMENT|MAXVALUE|MINVALUE and - // nearest following numeric constant. Without with trick we find a lot of "keywords" - // in 'avrasm' autodetection test... { - beginKeywords: 'CACHE INCREMENT MAXVALUE MINVALUE', - end: hljs.C_NUMBER_RE, - returnEnd: true, - keywords: 'BY CACHE INCREMENT MAXVALUE MINVALUE' + begin: /\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/ }, - // WITH|WITHOUT TIME ZONE as part of datatype { - className: 'type', - begin: /\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/ + begin: /\bNULLS\s+(FIRST|LAST)\b/ }, - // INTERVAL optional fields { - className: 'type', - begin: /\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/ + begin: /\bEVENT\s+TRIGGER\b/ }, - // Pseudo-types which allowed only as return type { - begin: /\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/, - keywords: { - keyword: 'RETURNS', - type: 'LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER' - } + begin: /\b(MAPPING|OR)\s+REPLACE\b/ }, - // Known functions - only when followed by '(' { - begin: '\\b(' + FUNCTIONS_RE + ')\\s*\\(' - //keywords: { built_in: FUNCTIONS } + begin: /\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/ }, - // Types { - begin: '\\.(' + TYPES_RE + ')\\b' // prevent highlight as type, say, 'oid' in 'pgclass.oid' + begin: /\b(SHARE|EXCLUSIVE)\s+MODE\b/ }, { - begin: '\\b(' + TYPES_RE + ')\\s+PATH\\b', // in XMLTABLE - keywords: { - keyword: 'PATH', // hopefully no one would use PATH type in XMLTABLE... - type: TYPES.replace('PATH ','') - } + begin: /\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/ }, { - className: 'type', - begin: '\\b(' + TYPES_RE + ')\\b' + begin: /\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/ }, - // Strings, see https://www.postgresql.org/docs/11/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS { - className: 'string', - begin: '\'', end: '\'', - contains: [{begin: '\'\''}] + begin: /\bPRESERVE\s+ROWS\b/ }, { - className: 'string', - begin: '(e|E|u&|U&)\'', end: '\'', - contains: [{begin: '\\\\.'}], - relevance: 10 + begin: /\bDISCARD\s+PLANS\b/ + }, + { + begin: /\bREFERENCING\s+(OLD|NEW)\b/ + }, + { + begin: /\bSKIP\s+LOCKED\b/ + }, + { + begin: /\bGROUPING\s+SETS\b/ + }, + { + begin: /\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/ + }, + { + begin: /\b(WITH|WITHOUT)\s+HOLD\b/ + }, + { + begin: /\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/ + }, + { + begin: /\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/ + }, + { + begin: /\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/ + }, + { + begin: /\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/ + }, + { + begin: /\bIS\s+(NOT\s+)?UNKNOWN\b/ + }, + { + begin: /\bSECURITY\s+LABEL\b/ + }, + { + begin: /\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/ + }, + { + begin: /\bWITH\s+(NO\s+)?DATA\b/ + }, + { + begin: /\b(FOREIGN|SET)\s+DATA\b/ + }, + { + begin: /\bSET\s+(CATALOG|CONSTRAINTS)\b/ + }, + { + begin: /\b(WITH|FOR)\s+ORDINALITY\b/ + }, + { + begin: /\bIS\s+(NOT\s+)?DOCUMENT\b/ + }, + { + begin: /\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/ + }, + { + begin: /\b(STRIP|PRESERVE)\s+WHITESPACE\b/ + }, + { + begin: /\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/ + }, + { + begin: /\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/ + }, + { + begin: /\bAT\s+TIME\s+ZONE\b/ + }, + { + begin: /\bGRANTED\s+BY\b/ + }, + { + begin: /\bRETURN\s+(QUERY|NEXT)\b/ }, - hljs.END_SAME_AS_BEGIN({ - begin: DOLLAR_STRING, - end: DOLLAR_STRING, - contains: [ - { - // actually we want them all except SQL; listed are those with known implementations - // and XML + JSON just in case - subLanguage: ['pgsql','perl','python','tcl','r','lua','java','php','ruby','bash','scheme','xml','json'], - endsWithParent: true - } - ] - }), - // identifiers in quotes - { - begin: '"', end: '"', - contains: [{begin: '""'}] - }, - // numbers - hljs.C_NUMBER_MODE, - // comments - hljs.C_BLOCK_COMMENT_MODE, - COMMENT_MODE, - // PL/pgSQL staff - // %ROWTYPE, %TYPE, $n - { - className: 'meta', - variants: [ - {begin: '%(ROW)?TYPE', relevance: 10}, // %TYPE, %ROWTYPE - {begin: '\\$\\d+'}, // $n - {begin: '^#\\w', end: '$'} // #compiler option - ] - }, - // <> - { - className: 'symbol', - begin: LABEL, + { + begin: /\b(ATTACH|DETACH)\s+PARTITION\b/ + }, + { + begin: /\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/ + }, + { + begin: /\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/ + }, + { + begin: /\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/ + } + ] + }, + // functions named as keywords, followed by '(' + { + begin: /\b(FORMAT|FAMILY|VERSION)\s*\(/ + // keywords: { built_in: 'FORMAT FAMILY VERSION' } + }, + // INCLUDE ( ... ) in index_parameters in CREATE TABLE + { + begin: /\bINCLUDE\s*\(/, + keywords: 'INCLUDE' + }, + // not highlight RANGE if not in frame_clause (not 100% correct, but seems satisfactory) + { + begin: /\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/ + }, + // disable highlighting in commands CREATE AGGREGATE/COLLATION/DATABASE/OPERTOR/TEXT SEARCH .../TYPE + // and in PL/pgSQL RAISE ... USING + { + begin: /\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/ + }, + // PG_smth; HAS_some_PRIVILEGE + { + // className: 'built_in', + begin: /\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/, + relevance: 10 + }, + // extract + { + begin: /\bEXTRACT\s*\(/, + end: /\bFROM\b/, + returnEnd: true, + keywords: { + // built_in: 'EXTRACT', + type: 'CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS ' + + 'MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR ' + + 'TIMEZONE_MINUTE WEEK YEAR' + } + }, + // xmlelement, xmlpi - special NAME + { + begin: /\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/, + keywords: { + // built_in: 'XMLELEMENT XMLPI', + keyword: 'NAME' + } + }, + // xmlparse, xmlserialize + { + begin: /\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/, + keywords: { + // built_in: 'XMLPARSE XMLSERIALIZE', + keyword: 'DOCUMENT CONTENT' + } + }, + // Sequences. We actually skip everything between CACHE|INCREMENT|MAXVALUE|MINVALUE and + // nearest following numeric constant. Without with trick we find a lot of "keywords" + // in 'avrasm' autodetection test... + { + beginKeywords: 'CACHE INCREMENT MAXVALUE MINVALUE', + end: hljs.C_NUMBER_RE, + returnEnd: true, + keywords: 'BY CACHE INCREMENT MAXVALUE MINVALUE' + }, + // WITH|WITHOUT TIME ZONE as part of datatype + { + className: 'type', + begin: /\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/ + }, + // INTERVAL optional fields + { + className: 'type', + begin: /\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/ + }, + // Pseudo-types which allowed only as return type + { + begin: /\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/, + keywords: { + keyword: 'RETURNS', + type: 'LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER' + } + }, + // Known functions - only when followed by '(' + { + begin: '\\b(' + FUNCTIONS_RE + ')\\s*\\(' + // keywords: { built_in: FUNCTIONS } + }, + // Types + { + begin: '\\.(' + TYPES_RE + ')\\b' // prevent highlight as type, say, 'oid' in 'pgclass.oid' + }, + { + begin: '\\b(' + TYPES_RE + ')\\s+PATH\\b', // in XMLTABLE + keywords: { + keyword: 'PATH', // hopefully no one would use PATH type in XMLTABLE... + type: TYPES.replace('PATH ', '') + } + }, + { + className: 'type', + begin: '\\b(' + TYPES_RE + ')\\b' + }, + // Strings, see https://www.postgresql.org/docs/11/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS + { + className: 'string', + begin: '\'', + end: '\'', + contains: [ + { + begin: '\'\'' + } + ] + }, + { + className: 'string', + begin: '(e|E|u&|U&)\'', + end: '\'', + contains: [ + { + begin: '\\\\.' + } + ], + relevance: 10 + }, + hljs.END_SAME_AS_BEGIN({ + begin: DOLLAR_STRING, + end: DOLLAR_STRING, + contains: [ + { + // actually we want them all except SQL; listed are those with known implementations + // and XML + JSON just in case + subLanguage: [ + 'pgsql', + 'perl', + 'python', + 'tcl', + 'r', + 'lua', + 'java', + 'php', + 'ruby', + 'bash', + 'scheme', + 'xml', + 'json' + ], + endsWithParent: true + } + ] + }), + // identifiers in quotes + { + begin: '"', + end: '"', + contains: [ + { + begin: '""' + } + ] + }, + // numbers + hljs.C_NUMBER_MODE, + // comments + hljs.C_BLOCK_COMMENT_MODE, + COMMENT_MODE, + // PL/pgSQL staff + // %ROWTYPE, %TYPE, $n + { + className: 'meta', + variants: [ + { // %TYPE, %ROWTYPE + begin: '%(ROW)?TYPE', relevance: 10 + }, + { // $n + begin: '\\$\\d+' + }, + { // #compiler option + begin: '^#\\w', + end: '$' } ] + }, + // <> + { + className: 'symbol', + begin: LABEL, + relevance: 10 + } + ] }; } diff --git a/src/languages/php-template.js b/src/languages/php-template.js index dfebbf6be5..b26e75f835 100644 --- a/src/languages/php-template.js +++ b/src/languages/php-template.js @@ -18,11 +18,33 @@ export default function(hljs) { contains: [ // We don't want the php closing tag ?> to close the PHP block when // inside any of the following blocks: - {begin: '/\\*', end: '\\*/', skip: true}, - {begin: 'b"', end: '"', skip: true}, - {begin: 'b\'', end: '\'', skip: true}, - hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null, className: null, contains: null, skip: true}), - hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null, className: null, contains: null, skip: true}) + { + begin: '/\\*', + end: '\\*/', + skip: true + }, + { + begin: 'b"', + end: '"', + skip: true + }, + { + begin: 'b\'', + end: '\'', + skip: true + }, + hljs.inherit(hljs.APOS_STRING_MODE, { + illegal: null, + className: null, + contains: null, + skip: true + }), + hljs.inherit(hljs.QUOTE_STRING_MODE, { + illegal: null, + className: null, + contains: null, + skip: true + }) ] } ] diff --git a/src/languages/plaintext.js b/src/languages/plaintext.js index ab7a700efb..f4f5985173 100644 --- a/src/languages/plaintext.js +++ b/src/languages/plaintext.js @@ -6,9 +6,12 @@ Category: common */ export default function(hljs) { - return { - name: 'Plain text', - aliases: ['text', 'txt'], - disableAutodetect: true - }; + return { + name: 'Plain text', + aliases: [ + 'text', + 'txt' + ], + disableAutodetect: true + }; } diff --git a/src/languages/pony.js b/src/languages/pony.js index 8f13eb87a9..87a6ad375c 100644 --- a/src/languages/pony.js +++ b/src/languages/pony.js @@ -7,7 +7,7 @@ Website: https://www.ponylang.io */ export default function(hljs) { - var KEYWORDS = { + const KEYWORDS = { keyword: 'actor addressof and as be break class compile_error compile_intrinsic ' + 'consume continue delegate digestof do else elseif embed end error ' + @@ -20,36 +20,40 @@ export default function(hljs) { 'this false true' }; - var TRIPLE_QUOTE_STRING_MODE = { + const TRIPLE_QUOTE_STRING_MODE = { className: 'string', - begin: '"""', end: '"""', + begin: '"""', + end: '"""', relevance: 10 }; - var QUOTE_STRING_MODE = { + const QUOTE_STRING_MODE = { className: 'string', - begin: '"', end: '"', - contains: [hljs.BACKSLASH_ESCAPE] + begin: '"', + end: '"', + contains: [ hljs.BACKSLASH_ESCAPE ] }; - var SINGLE_QUOTE_CHAR_MODE = { + const SINGLE_QUOTE_CHAR_MODE = { className: 'string', - begin: '\'', end: '\'', - contains: [hljs.BACKSLASH_ESCAPE], + begin: '\'', + end: '\'', + contains: [ hljs.BACKSLASH_ESCAPE ], relevance: 0 }; - var TYPE_NAME = { + const TYPE_NAME = { className: 'type', begin: '\\b_?[A-Z][\\w]*', relevance: 0 }; - var PRIMED_NAME = { - begin: hljs.IDENT_RE + '\'', relevance: 0 + const PRIMED_NAME = { + begin: hljs.IDENT_RE + '\'', + relevance: 0 }; - var NUMBER_MODE = { + const NUMBER_MODE = { className: 'number', begin: '(-?)(\\b0[xX][a-fA-F0-9]+|\\b0[bB][01]+|(\\b\\d+(_\\d+)?(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)', relevance: 0 diff --git a/src/languages/powershell.js b/src/languages/powershell.js index 98523c0d82..3d10a7404f 100644 --- a/src/languages/powershell.js +++ b/src/languages/powershell.js @@ -7,13 +7,25 @@ Website: https://docs.microsoft.com/en-us/powershell/ */ export default function(hljs) { - - var TYPES = - ["string", "char", "byte", "int", "long", "bool", "decimal", "single", - "double", "DateTime", "xml", "array", "hashtable", "void"]; + const TYPES = [ + "string", + "char", + "byte", + "int", + "long", + "bool", + "decimal", + "single", + "double", + "DateTime", + "xml", + "array", + "hashtable", + "void" + ]; // https://msdn.microsoft.com/en-us/library/ms714428(v=vs.85).aspx - var VALID_VERBS = + const VALID_VERBS = 'Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|' + 'Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|' + 'Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|' + @@ -26,7 +38,7 @@ export default function(hljs) { 'Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|' + 'Unprotect|Use|ForEach|Sort|Tee|Where'; - var COMPARISON_OPERATORS = + const COMPARISON_OPERATORS = '-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|' + '-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|' + '-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|' + @@ -35,66 +47,91 @@ export default function(hljs) { '-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|' + '-split|-wildcard|-xor'; - var KEYWORDS = { + const KEYWORDS = { $pattern: /-?[A-z\.\-]+\b/, - keyword: 'if else foreach return do while until elseif begin for trap data dynamicparam ' + - 'end break throw param continue finally in switch exit filter try process catch ' + - 'hidden static parameter', + keyword: + 'if else foreach return do while until elseif begin for trap data dynamicparam ' + + 'end break throw param continue finally in switch exit filter try process catch ' + + 'hidden static parameter', // "echo" relevance has been set to 0 to avoid auto-detect conflicts with shell transcripts - built_in: 'ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp ' + - 'cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx ' + - 'fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group ' + - 'gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi ' + - 'iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh ' + - 'popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp ' + - 'rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp ' + - 'spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write' + built_in: + 'ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp ' + + 'cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx ' + + 'fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group ' + + 'gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi ' + + 'iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh ' + + 'popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp ' + + 'rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp ' + + 'spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write' // TODO: 'validate[A-Z]+' can't work in keywords }; - var TITLE_NAME_RE = /\w[\w\d]*((-)[\w\d]+)*/; + const TITLE_NAME_RE = /\w[\w\d]*((-)[\w\d]+)*/; - var BACKTICK_ESCAPE = { + const BACKTICK_ESCAPE = { begin: '`[\\s\\S]', relevance: 0 }; - var VAR = { + const VAR = { className: 'variable', variants: [ - { begin: /\$\B/ }, - { className: 'keyword', begin: /\$this/ }, - { begin: /\$[\w\d][\w\d_:]*/ } + { + begin: /\$\B/ + }, + { + className: 'keyword', + begin: /\$this/ + }, + { + begin: /\$[\w\d][\w\d_:]*/ + } ] }; - var LITERAL = { + const LITERAL = { className: 'literal', begin: /\$(null|true|false)\b/ }; - var QUOTE_STRING = { + const QUOTE_STRING = { className: "string", - variants: [{ begin: /"/, end: /"/ }, { begin: /@"/, end: /^"@/ }], + variants: [ + { + begin: /"/, + end: /"/ + }, + { + begin: /@"/, + end: /^"@/ + } + ], contains: [ BACKTICK_ESCAPE, VAR, { className: 'variable', - begin: /\$[A-z]/, end: /[^A-z]/ + begin: /\$[A-z]/, + end: /[^A-z]/ } ] }; - var APOS_STRING = { + const APOS_STRING = { className: 'string', variants: [ - { begin: /'/, end: /'/ }, - { begin: /@'/, end: /^'@/ } + { + begin: /'/, + end: /'/ + }, + { + begin: /@'/, + end: /^'@/ + } ] }; - var PS_HELPTAGS = { + const PS_HELPTAGS = { className: "doctag", variants: [ /* no paramater help tags */ @@ -102,119 +139,171 @@ export default function(hljs) { begin: /\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/ }, /* one parameter help tags */ - { begin: /\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/ } + { + begin: /\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/ + } ] }; - var PS_COMMENT = hljs.inherit( + const PS_COMMENT = hljs.inherit( hljs.COMMENT(null, null), { variants: [ /* single-line comment */ - { begin: /#/, end: /$/ }, + { + begin: /#/, + end: /$/ + }, /* multi-line comment */ - { begin: /<#/, end: /#>/ } + { + begin: /<#/, + end: /#>/ + } ], - contains: [PS_HELPTAGS] + contains: [ PS_HELPTAGS ] } ); - var CMDLETS = { + const CMDLETS = { className: 'built_in', variants: [ - { begin: '('.concat(VALID_VERBS, ')+(-)[\\w\\d]+') } + { + begin: '('.concat(VALID_VERBS, ')+(-)[\\w\\d]+') + } ] }; - var PS_CLASS = { + const PS_CLASS = { className: 'class', - beginKeywords: 'class enum', end: /\s*[{]/, excludeEnd: true, + beginKeywords: 'class enum', + end: /\s*[{]/, + excludeEnd: true, relevance: 0, - contains: [hljs.TITLE_MODE] + contains: [ hljs.TITLE_MODE ] }; - var PS_FUNCTION = { + const PS_FUNCTION = { className: 'function', - begin: /function\s+/, end: /\s*\{|$/, + begin: /function\s+/, + end: /\s*\{|$/, excludeEnd: true, returnBegin: true, relevance: 0, contains: [ - { begin: "function", relevance: 0, className: "keyword" }, - { className: "title", - begin: TITLE_NAME_RE, relevance:0 }, - { begin: /\(/, end: /\)/, className: "params", + { + begin: "function", + relevance: 0, + className: "keyword" + }, + { + className: "title", + begin: TITLE_NAME_RE, + relevance: 0 + }, + { + begin: /\(/, + end: /\)/, + className: "params", relevance: 0, - contains: [VAR] } + contains: [ VAR ] + } // CMDLETS ] }; // Using statment, plus type, plus assembly name. - var PS_USING = { - begin: /using\s/, end: /$/, + const PS_USING = { + begin: /using\s/, + end: /$/, returnBegin: true, contains: [ QUOTE_STRING, APOS_STRING, - { className: 'keyword', begin: /(using|assembly|command|module|namespace|type)/ } + { + className: 'keyword', + begin: /(using|assembly|command|module|namespace|type)/ + } ] }; // Comperison operators & function named parameters. - var PS_ARGUMENTS = { + const PS_ARGUMENTS = { variants: [ // PS literals are pretty verbose so it's a good idea to accent them a bit. - { className: 'operator', begin: '('.concat(COMPARISON_OPERATORS, ')\\b') }, - { className: 'literal', begin: /(-)[\w\d]+/, relevance:0 } + { + className: 'operator', + begin: '('.concat(COMPARISON_OPERATORS, ')\\b') + }, + { + className: 'literal', + begin: /(-)[\w\d]+/, + relevance: 0 + } ] }; - var STATIC_MEMBER = { + const STATIC_MEMBER = { className: 'selector-tag', - begin: /::\w+\b/, end: /$/, + begin: /::\w+\b/, + end: /$/, returnBegin: true, contains: [ - { className: 'attribute', begin: /\w+/, endsParent: true } + { + className: 'attribute', + begin: /\w+/, + endsParent: true + } ] }; - var HASH_SIGNS = { + const HASH_SIGNS = { className: 'selector-tag', begin: /@\B/, relevance: 0 }; - var PS_NEW_OBJECT_TYPE = { + const PS_NEW_OBJECT_TYPE = { className: 'built_in', - begin: /New-Object\s+\w/, end: /$/, + begin: /New-Object\s+\w/, + end: /$/, returnBegin: true, contains: [ - { begin: /New-Object\s+/, relevance: 0 }, - { className: 'meta', begin: /([\w\.])+/, endsParent: true } + { + begin: /New-Object\s+/, + relevance: 0 + }, + { + className: 'meta', + begin: /([\w\.])+/, + endsParent: true + } ] }; // It's a very general rule so I'll narrow it a bit with some strict boundaries // to avoid any possible false-positive collisions! - var PS_METHODS = { + const PS_METHODS = { className: 'function', - begin: /\[.*\]\s*[\w]+[ ]??\(/, end: /$/, + begin: /\[.*\]\s*[\w]+[ ]??\(/, + end: /$/, returnBegin: true, relevance: 0, contains: [ { - className: 'keyword', begin: '('.concat( - KEYWORDS.keyword.toString().replace(/\s/g, '|' - ), ')\\b'), + className: 'keyword', + begin: '('.concat( + KEYWORDS.keyword.toString().replace(/\s/g, '|' + ), ')\\b'), endsParent: true, relevance: 0 }, - hljs.inherit(hljs.TITLE_MODE, { endsParent: true }) + hljs.inherit(hljs.TITLE_MODE, { + endsParent: true + }) ] }; - var GENTLEMANS_SET = [ + const GENTLEMANS_SET = [ // STATIC_MEMBER, PS_METHODS, PS_COMMENT, @@ -229,16 +318,25 @@ export default function(hljs) { HASH_SIGNS ]; - var PS_TYPE = { - begin: /\[/, end: /\]/, + const PS_TYPE = { + begin: /\[/, + end: /\]/, excludeBegin: true, excludeEnd: true, relevance: 0, contains: [].concat( 'self', GENTLEMANS_SET, - { begin: "(" + TYPES.join("|") + ")", className: "built_in", relevance:0 }, - { className: 'type', begin: /[\.\w\d]+/, relevance: 0 } + { + begin: "(" + TYPES.join("|") + ")", + className: "built_in", + relevance: 0 + }, + { + className: 'type', + begin: /[\.\w\d]+/, + relevance: 0 + } ) }; @@ -246,7 +344,10 @@ export default function(hljs) { return { name: 'PowerShell', - aliases: ["ps", "ps1"], + aliases: [ + "ps", + "ps1" + ], case_insensitive: true, keywords: KEYWORDS, contains: GENTLEMANS_SET.concat( diff --git a/src/languages/profile.js b/src/languages/profile.js index df2f005308..a7c504d434 100644 --- a/src/languages/profile.js +++ b/src/languages/profile.js @@ -10,25 +10,30 @@ export default function(hljs) { contains: [ hljs.C_NUMBER_MODE, { - begin: '[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}', end: ':', + begin: '[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}', + end: ':', excludeEnd: true }, { - begin: '(ncalls|tottime|cumtime)', end: '$', + begin: '(ncalls|tottime|cumtime)', + end: '$', keywords: 'ncalls tottime|10 cumtime|10 filename', relevance: 10 }, { - begin: 'function calls', end: '$', - contains: [hljs.C_NUMBER_MODE], + begin: 'function calls', + end: '$', + contains: [ hljs.C_NUMBER_MODE ], relevance: 10 }, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, { className: 'string', - begin: '\\(', end: '\\)$', - excludeBegin: true, excludeEnd: true, + begin: '\\(', + end: '\\)$', + excludeBegin: true, + excludeEnd: true, relevance: 0 } ] diff --git a/src/languages/prolog.js b/src/languages/prolog.js index 33695ad090..0f6a05ac88 100644 --- a/src/languages/prolog.js +++ b/src/languages/prolog.js @@ -6,65 +6,70 @@ Website: https://en.wikipedia.org/wiki/Prolog */ export default function(hljs) { - - var ATOM = { + const ATOM = { begin: /[a-z][A-Za-z0-9_]*/, relevance: 0 }; - var VAR = { + const VAR = { className: 'symbol', variants: [ - {begin: /[A-Z][a-zA-Z0-9_]*/}, - {begin: /_[A-Za-z0-9_]*/}, + { + begin: /[A-Z][a-zA-Z0-9_]*/ + }, + { + begin: /_[A-Za-z0-9_]*/ + } ], relevance: 0 }; - var PARENTED = { + const PARENTED = { begin: /\(/, end: /\)/, relevance: 0 }; - var LIST = { + const LIST = { begin: /\[/, end: /\]/ }; - var LINE_COMMENT = { + const LINE_COMMENT = { className: 'comment', - begin: /%/, end: /$/, - contains: [hljs.PHRASAL_WORDS_MODE] + begin: /%/, + end: /$/, + contains: [ hljs.PHRASAL_WORDS_MODE ] }; - var BACKTICK_STRING = { + const BACKTICK_STRING = { className: 'string', - begin: /`/, end: /`/, - contains: [hljs.BACKSLASH_ESCAPE] + begin: /`/, + end: /`/, + contains: [ hljs.BACKSLASH_ESCAPE ] }; - var CHAR_CODE = { + const CHAR_CODE = { className: 'string', // 0'a etc. begin: /0'(\\'|.)/ }; - var SPACE_CODE = { + const SPACE_CODE = { className: 'string', begin: /0'\\s/ // 0'\s }; - var PRED_OP = { // relevance booster + const PRED_OP = { // relevance booster begin: /:-/ }; - var inner = [ + const inner = [ ATOM, VAR, @@ -87,7 +92,9 @@ export default function(hljs) { return { name: 'Prolog', contains: inner.concat([ - {begin: /\.$/} // relevance booster + { // relevance booster + begin: /\.$/ + } ]) }; } diff --git a/src/languages/puppet.js b/src/languages/puppet.js index c2f9fc2775..1b99cbc9b9 100644 --- a/src/languages/puppet.js +++ b/src/languages/puppet.js @@ -6,20 +6,19 @@ Category: config */ export default function(hljs) { - - var PUPPET_KEYWORDS = { + const PUPPET_KEYWORDS = { keyword: /* language keywords */ 'and case default else elsif false if in import enherits node or true undef unless main settings $string ', literal: /* metaparameters */ 'alias audit before loglevel noop require subscribe tag ' + - /* normal attributes */ + /* normal attributes */ 'owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check ' + - 'en_address ip_address realname command environment hour monute month monthday special target weekday '+ + 'en_address ip_address realname command environment hour monute month monthday special target weekday ' + 'creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore ' + 'links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source ' + - 'souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid '+ + 'souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ' + 'ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel ' + 'native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options ' + 'device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use ' + @@ -33,56 +32,78 @@ export default function(hljs) { built_in: /* core facts */ 'architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers ' + - 'domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces '+ + 'domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ' + 'ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion ' + 'kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease ' + 'lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major ' + - 'macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease '+ - 'operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion '+ - 'rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced '+ - 'selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime '+ + 'macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease ' + + 'operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion ' + + 'rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced ' + + 'selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime ' + 'uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version' }; - var COMMENT = hljs.COMMENT('#', '$'); + const COMMENT = hljs.COMMENT('#', '$'); - var IDENT_RE = '([A-Za-z_]|::)(\\w|::)*'; + const IDENT_RE = '([A-Za-z_]|::)(\\w|::)*'; - var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE}); + const TITLE = hljs.inherit(hljs.TITLE_MODE, { + begin: IDENT_RE + }); - var VARIABLE = {className: 'variable', begin: '\\$' + IDENT_RE}; + const VARIABLE = { + className: 'variable', + begin: '\\$' + IDENT_RE + }; - var STRING = { + const STRING = { className: 'string', - contains: [hljs.BACKSLASH_ESCAPE, VARIABLE], + contains: [ + hljs.BACKSLASH_ESCAPE, + VARIABLE + ], variants: [ - {begin: /'/, end: /'/}, - {begin: /"/, end: /"/} + { + begin: /'/, + end: /'/ + }, + { + begin: /"/, + end: /"/ + } ] }; return { name: 'Puppet', - aliases: ['pp'], + aliases: [ 'pp' ], contains: [ COMMENT, VARIABLE, STRING, { - beginKeywords: 'class', end: '\\{|;', + beginKeywords: 'class', + end: '\\{|;', illegal: /=/, - contains: [TITLE, COMMENT] + contains: [ + TITLE, + COMMENT + ] }, { - beginKeywords: 'define', end: /\{/, + beginKeywords: 'define', + end: /\{/, contains: [ { - className: 'section', begin: hljs.IDENT_RE, endsParent: true + className: 'section', + begin: hljs.IDENT_RE, + endsParent: true } ] }, { - begin: hljs.IDENT_RE + '\\s+\\{', returnBegin: true, + begin: hljs.IDENT_RE + '\\s+\\{', + returnBegin: true, end: /\S/, contains: [ { @@ -90,19 +111,21 @@ export default function(hljs) { begin: hljs.IDENT_RE }, { - begin: /\{/, end: /\}/, + begin: /\{/, + end: /\}/, keywords: PUPPET_KEYWORDS, relevance: 0, contains: [ STRING, COMMENT, { - begin:'[a-zA-Z_]+\\s*=>', - returnBegin: true, end: '=>', + begin: '[a-zA-Z_]+\\s*=>', + returnBegin: true, + end: '=>', contains: [ { className: 'attr', - begin: hljs.IDENT_RE, + begin: hljs.IDENT_RE } ] }, @@ -118,5 +141,5 @@ export default function(hljs) { relevance: 0 } ] - } + }; } diff --git a/src/languages/purebasic.js b/src/languages/purebasic.js index 96f13c6a91..d5f864ef04 100644 --- a/src/languages/purebasic.js +++ b/src/languages/purebasic.js @@ -9,12 +9,13 @@ Website: https://www.purebasic.com // Base deafult colors in PB IDE: background: #FFFFDF; foreground: #000000; export default function(hljs) { - var STRINGS = { // PB IDE color: #0080FF (Azure Radiance) + const STRINGS = { // PB IDE color: #0080FF (Azure Radiance) className: 'string', - begin: '(~)?"', end: '"', + begin: '(~)?"', + end: '"', illegal: '\\n' }; - var CONSTANTS = { // PB IDE color: #924B72 (Cannon Pink) + const CONSTANTS = { // PB IDE color: #924B72 (Cannon Pink) // "#" + a letter or underscore + letters, digits or underscores + (optional) "$" className: 'symbol', begin: '#[a-zA-Z_]\\w*\\$?' @@ -22,7 +23,10 @@ export default function(hljs) { return { name: 'PureBASIC', - aliases: ['pb', 'pbi'], + aliases: [ + 'pb', + 'pbi' + ], keywords: // PB IDE color: #006666 (Blue Stone) + Bold // Keywords from all version of PureBASIC 5.00 upward ... 'Align And Array As Break CallDebugger Case CompilerCase CompilerDefault ' + @@ -42,7 +46,9 @@ export default function(hljs) { 'UseModule Wend While With XIncludeFile XOr', contains: [ // COMMENTS | PB IDE color: #00AAAA (Persian Green) - hljs.COMMENT(';', '$', {relevance: 0}), + hljs.COMMENT(';', '$', { + relevance: 0 + }), { // PROCEDURES DEFINITIONS className: 'function', diff --git a/src/languages/python-repl.js b/src/languages/python-repl.js index ceb92d9574..7746c5c5c0 100644 --- a/src/languages/python-repl.js +++ b/src/languages/python-repl.js @@ -7,7 +7,7 @@ Category: common export default function(hljs) { return { - aliases: ['pycon'], + aliases: [ 'pycon' ], contains: [ { className: 'meta', @@ -16,14 +16,19 @@ export default function(hljs) { // this is purely for cleaner HTML output end: / |$/, starts: { - end: '$', subLanguage: 'python' + end: '$', + subLanguage: 'python' } }, variants: [ - { begin: /^>>>(?=[ ]|$)/ }, - { begin: /^\.\.\.(?=[ ]|$)/ } + { + begin: /^>>>(?=[ ]|$)/ + }, + { + begin: /^\.\.\.(?=[ ]|$)/ + } ] - }, + } ] - } + }; } diff --git a/src/languages/q.js b/src/languages/q.js index 5765429fa6..7b02be211a 100644 --- a/src/languages/q.js +++ b/src/languages/q.js @@ -5,26 +5,31 @@ Description: Q is a vector-based functional paradigm programming language built Author: Sergey Vidyuk Website: https://kx.com/connect-with-us/developers/ */ + export default function(hljs) { - var Q_KEYWORDS = { - $pattern: /(`?)[A-Za-z0-9_]+\b/, - keyword: - 'do while select delete by update from', - literal: - '0b 1b', - built_in: - 'neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum', - type: - '`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid' + const KEYWORDS = { + $pattern: /(`?)[A-Za-z0-9_]+\b/, + keyword: + 'do while select delete by update from', + literal: + '0b 1b', + built_in: + 'neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum', + type: + '`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid' }; + return { - name: 'Q', - aliases:['k', 'kdb'], - keywords: Q_KEYWORDS, - contains: [ - hljs.C_LINE_COMMENT_MODE, - hljs.QUOTE_STRING_MODE, - hljs.C_NUMBER_MODE - ] + name: 'Q', + aliases: [ + 'k', + 'kdb' + ], + keywords: KEYWORDS, + contains: [ + hljs.C_LINE_COMMENT_MODE, + hljs.QUOTE_STRING_MODE, + hljs.C_NUMBER_MODE + ] }; } diff --git a/src/languages/qml.js b/src/languages/qml.js index e61f9863ec..b96c415770 100644 --- a/src/languages/qml.js +++ b/src/languages/qml.js @@ -11,70 +11,70 @@ Category: scripting import * as regex from '../lib/regex.js'; export default function(hljs) { - var KEYWORDS = { - keyword: - 'in of on if for while finally var new function do return void else break catch ' + - 'instanceof with throw case default try this switch continue typeof delete ' + - 'let yield const export super debugger as async await import', - literal: - 'true false null undefined NaN Infinity', - built_in: - 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' + - 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' + - 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' + - 'TypeError URIError Number Math Date String RegExp Array Float32Array ' + - 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' + - 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' + - 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' + - 'Behavior bool color coordinate date double enumeration font geocircle georectangle ' + - 'geoshape int list matrix4x4 parent point quaternion real rect ' + - 'size string url variant vector2d vector3d vector4d ' + - 'Promise' - }; + const KEYWORDS = { + keyword: + 'in of on if for while finally var new function do return void else break catch ' + + 'instanceof with throw case default try this switch continue typeof delete ' + + 'let yield const export super debugger as async await import', + literal: + 'true false null undefined NaN Infinity', + built_in: + 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' + + 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' + + 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' + + 'TypeError URIError Number Math Date String RegExp Array Float32Array ' + + 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' + + 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' + + 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' + + 'Behavior bool color coordinate date double enumeration font geocircle georectangle ' + + 'geoshape int list matrix4x4 parent point quaternion real rect ' + + 'size string url variant vector2d vector3d vector4d ' + + 'Promise' + }; - var QML_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9\\._]*'; + const QML_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9\\._]*'; // Isolate property statements. Ends at a :, =, ;, ,, a comment or end of line. // Use property class. - var PROPERTY = { - className: 'keyword', - begin: '\\bproperty\\b', - starts: { - className: 'string', - end: '(:|=|;|,|//|/\\*|$)', - returnEnd: true - } + const PROPERTY = { + className: 'keyword', + begin: '\\bproperty\\b', + starts: { + className: 'string', + end: '(:|=|;|,|//|/\\*|$)', + returnEnd: true + } }; // Isolate signal statements. Ends at a ) a comment or end of line. // Use property class. - var SIGNAL = { - className: 'keyword', - begin: '\\bsignal\\b', - starts: { - className: 'string', - end: '(\\(|:|=|;|,|//|/\\*|$)', - returnEnd: true - } + const SIGNAL = { + className: 'keyword', + begin: '\\bsignal\\b', + starts: { + className: 'string', + end: '(\\(|:|=|;|,|//|/\\*|$)', + returnEnd: true + } }; // id: is special in QML. When we see id: we want to mark the id: as attribute and // emphasize the token following. - var ID_ID = { - className: 'attribute', - begin: '\\bid\\s*:', - starts: { - className: 'string', - end: QML_IDENT_RE, - returnEnd: false - } + const ID_ID = { + className: 'attribute', + begin: '\\bid\\s*:', + starts: { + className: 'string', + end: QML_IDENT_RE, + returnEnd: false + } }; // Find QML object attribute. An attribute is a QML identifier followed by :. // Unfortunately it's hard to know where it ends, as it may contain scalars, // objects, object definitions, or javascript. The true end is either when the parent // ends or the next attribute is detected. - var QML_ATTRIBUTE = { + const QML_ATTRIBUTE = { begin: QML_IDENT_RE + '\\s*:', returnBegin: true, contains: [ @@ -91,18 +91,21 @@ export default function(hljs) { // Find QML object. A QML object is a QML identifier followed by { and ends at the matching }. // All we really care about is finding IDENT followed by { and just mark up the IDENT and ignore the {. - var QML_OBJECT = { - begin: regex.concat(QML_IDENT_RE, /\s*\{/), end: /\{/, + const QML_OBJECT = { + begin: regex.concat(QML_IDENT_RE, /\s*\{/), + end: /\{/, returnBegin: true, relevance: 0, contains: [ - hljs.inherit(hljs.TITLE_MODE, {begin: QML_IDENT_RE}) + hljs.inherit(hljs.TITLE_MODE, { + begin: QML_IDENT_RE + }) ] }; return { name: 'QML', - aliases: ['qt'], + aliases: [ 'qt' ], case_insensitive: false, keywords: KEYWORDS, contains: [ @@ -114,12 +117,14 @@ export default function(hljs) { hljs.QUOTE_STRING_MODE, { // template string className: 'string', - begin: '`', end: '`', + begin: '`', + end: '`', contains: [ hljs.BACKSLASH_ESCAPE, { className: 'subst', - begin: '\\$\\{', end: '\\}' + begin: '\\$\\{', + end: '\\}' } ] }, @@ -128,9 +133,15 @@ export default function(hljs) { { className: 'number', variants: [ - { begin: '\\b(0[bB][01]+)' }, - { begin: '\\b(0[oO][0-7]+)' }, - { begin: hljs.C_NUMBER_RE } + { + begin: '\\b(0[bB][01]+)' + }, + { + begin: '\\b(0[oO][0-7]+)' + }, + { + begin: hljs.C_NUMBER_RE + } ], relevance: 0 }, @@ -142,7 +153,8 @@ export default function(hljs) { hljs.C_BLOCK_COMMENT_MODE, hljs.REGEXP_MODE, { // E4X / JSX - begin: /\s*[);\]]/, + begin: /\s*[);\]]/, relevance: 0, subLanguage: 'xml' } @@ -153,12 +165,17 @@ export default function(hljs) { PROPERTY, { className: 'function', - beginKeywords: 'function', end: /\{/, excludeEnd: true, + beginKeywords: 'function', + end: /\{/, + excludeEnd: true, contains: [ - hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}), + hljs.inherit(hljs.TITLE_MODE, { + begin: /[A-Za-z$_][0-9A-Za-z$_]*/ + }), { className: 'params', - begin: /\(/, end: /\)/, + begin: /\(/, + end: /\)/, excludeBegin: true, excludeEnd: true, contains: [ @@ -170,7 +187,9 @@ export default function(hljs) { illegal: /\[|%/ }, { - begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots + // hack: prevents detection of keywords after dots + begin: '\\.' + hljs.IDENT_RE, + relevance: 0 }, ID_ID, QML_ATTRIBUTE, diff --git a/src/languages/reasonml.js b/src/languages/reasonml.js index cbe629f506..b67c568712 100644 --- a/src/languages/reasonml.js +++ b/src/languages/reasonml.js @@ -6,29 +6,39 @@ Author: Gidi Meir Morris Category: functional */ export default function(hljs) { - function orReValues(ops){ + function orReValues(ops) { return ops - .map(function(op) { - return op - .split('') - .map(function(char) { - return '\\' + char; - }) - .join(''); - }) - .join('|'); + .map(function(op) { + return op + .split('') + .map(function(char) { + return '\\' + char; + }) + .join(''); + }) + .join('|'); } - var RE_IDENT = '~?[a-z$_][0-9a-zA-Z$_]*'; - var RE_MODULE_IDENT = '`?[A-Z$_][0-9a-zA-Z$_]*'; + const RE_IDENT = '~?[a-z$_][0-9a-zA-Z$_]*'; + const RE_MODULE_IDENT = '`?[A-Z$_][0-9a-zA-Z$_]*'; - var RE_PARAM_TYPEPARAM = '\'?[a-z$_][0-9a-z$_]*'; - var RE_PARAM_TYPE = '\s*:\s*[a-z$_][0-9a-z$_]*(\(\s*(' + RE_PARAM_TYPEPARAM + '\s*(,' + RE_PARAM_TYPEPARAM + ')*)?\s*\))?'; - var RE_PARAM = RE_IDENT + '(' + RE_PARAM_TYPE + ')?(' + RE_PARAM_TYPE + ')?'; - var RE_OPERATOR = "(" + orReValues(['||', '++', '**', '+.', '*', '/', '*.', '/.', '...']) + "|\\|>|&&|==|===)"; - var RE_OPERATOR_SPACED = "\\s+" + RE_OPERATOR + "\\s+"; + const RE_PARAM_TYPEPARAM = '\'?[a-z$_][0-9a-z$_]*'; + const RE_PARAM_TYPE = '\s*:\s*[a-z$_][0-9a-z$_]*(\(\s*(' + RE_PARAM_TYPEPARAM + '\s*(,' + RE_PARAM_TYPEPARAM + ')*)?\s*\))?'; + const RE_PARAM = RE_IDENT + '(' + RE_PARAM_TYPE + ')?(' + RE_PARAM_TYPE + ')?'; + const RE_OPERATOR = "(" + orReValues([ + '||', + '++', + '**', + '+.', + '*', + '/', + '*.', + '/.', + '...' + ]) + "|\\|>|&&|==|===)"; + const RE_OPERATOR_SPACED = "\\s+" + RE_OPERATOR + "\\s+"; - var KEYWORDS = { + const KEYWORDS = { keyword: 'and as asr assert begin class constraint do done downto else end exception external ' + 'for fun function functor if in include inherit initializer ' + @@ -40,12 +50,12 @@ export default function(hljs) { 'true false' }; - var RE_NUMBER = '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' + + const RE_NUMBER = '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' + '0[oO][0-7_]+[Lln]?|' + '0[bB][01_]+[Lln]?|' + '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)'; - var NUMBER_MODE = { + const NUMBER_MODE = { className: 'number', relevance: 0, variants: [ @@ -58,12 +68,12 @@ export default function(hljs) { ] }; - var OPERATOR_MODE = { + const OPERATOR_MODE = { className: 'operator', relevance: 0, begin: RE_OPERATOR }; - var LIST_CONTENTS_MODES = [ + const LIST_CONTENTS_MODES = [ { className: 'identifier', relevance: 0, @@ -73,12 +83,13 @@ export default function(hljs) { NUMBER_MODE ]; - var MODULE_ACCESS_CONTENTS = [ + const MODULE_ACCESS_CONTENTS = [ hljs.QUOTE_STRING_MODE, OPERATOR_MODE, { className: 'module', - begin: "\\b" + RE_MODULE_IDENT, returnBegin: true, + begin: "\\b" + RE_MODULE_IDENT, + returnBegin: true, end: "\.", contains: [ { @@ -90,10 +101,11 @@ export default function(hljs) { } ]; - var PARAMS_CONTENTS = [ + const PARAMS_CONTENTS = [ { className: 'module', - begin: "\\b" + RE_MODULE_IDENT, returnBegin: true, + begin: "\\b" + RE_MODULE_IDENT, + returnBegin: true, end: "\.", relevance: 0, contains: [ @@ -106,7 +118,7 @@ export default function(hljs) { } ]; - var PARAMS_MODE = { + const PARAMS_MODE = { begin: RE_IDENT, end: '(,|\\n|\\))', relevance: 0, @@ -123,7 +135,7 @@ export default function(hljs) { ] }; - var FUNCTION_BLOCK_MODE = { + const FUNCTION_BLOCK_MODE = { className: 'function', relevance: 0, keywords: KEYWORDS, @@ -144,7 +156,7 @@ export default function(hljs) { begin: RE_PARAM }, { - begin: /\(\s*\)/, + begin: /\(\s*\)/ } ] } @@ -159,9 +171,7 @@ export default function(hljs) { { className: 'params', relevance: 0, - variants: [ - PARAMS_MODE - ] + variants: [ PARAMS_MODE ] } ] }, @@ -172,7 +182,7 @@ export default function(hljs) { }; MODULE_ACCESS_CONTENTS.push(FUNCTION_BLOCK_MODE); - var CONSTRUCTOR_MODE = { + const CONSTRUCTOR_MODE = { className: 'constructor', begin: RE_MODULE_IDENT + '\\(', end: '\\)', @@ -188,7 +198,7 @@ export default function(hljs) { ] }; - var PATTERN_MATCH_BLOCK_MODE = { + const PATTERN_MATCH_BLOCK_MODE = { className: 'pattern-match', begin: '\\|', returnBegin: true, @@ -206,7 +216,7 @@ export default function(hljs) { ] }; - var MODULE_ACCESS_MODE = { + const MODULE_ACCESS_MODE = { className: 'module-access', keywords: KEYWORDS, returnBegin: true, @@ -239,11 +249,13 @@ export default function(hljs) { return { name: 'ReasonML', - aliases: ['re'], + aliases: [ 're' ], keywords: KEYWORDS, illegal: '(:-|:=|\\$\\{|\\+=)', contains: [ - hljs.COMMENT('/\\*', '\\*/', { illegal: '^(#,\\/\\/)' }), + hljs.COMMENT('/\\*', '\\*/', { + illegal: '^(#,\\/\\/)' + }), { className: 'character', begin: '\'(\\\\[^\']+|[^\'])\'', @@ -260,7 +272,7 @@ export default function(hljs) { className: 'literal', begin: '\\[\\|', end: '\\|\\]', - relevance: 0, + relevance: 0, contains: LIST_CONTENTS_MODES }, { diff --git a/src/languages/roboconf.js b/src/languages/roboconf.js index e4457af933..c915d4ab0e 100644 --- a/src/languages/roboconf.js +++ b/src/languages/roboconf.js @@ -7,11 +7,13 @@ Category: config */ export default function(hljs) { - var IDENTIFIER = '[a-zA-Z-_][^\\n{]+\\{'; + const IDENTIFIER = '[a-zA-Z-_][^\\n{]+\\{'; - var PROPERTY = { + const PROPERTY = { className: 'attribute', - begin: /[a-zA-Z-_]+/, end: /\s*:/, excludeEnd: true, + begin: /[a-zA-Z-_]+/, + end: /\s*:/, + excludeEnd: true, starts: { end: ';', relevance: 0, @@ -30,7 +32,10 @@ export default function(hljs) { return { name: 'Roboconf', - aliases: ['graph', 'instances'], + aliases: [ + 'graph', + 'instances' + ], case_insensitive: true, keywords: 'import', contains: [ diff --git a/src/languages/routeros.js b/src/languages/routeros.js index b3c6a64132..bbe5c3ac90 100644 --- a/src/languages/routeros.js +++ b/src/languages/routeros.js @@ -36,8 +36,12 @@ export default function(hljs) { const VAR = { className: 'variable', variants: [ - { begin: /\$[\w\d#@][\w\d_]*/ }, - { begin: /\$\{(.*?)\}/ } + { + begin: /\$[\w\d#@][\w\d_]*/ + }, + { + begin: /\$\{(.*?)\}/ + } ] }; @@ -52,7 +56,7 @@ export default function(hljs) { className: 'variable', begin: /\$\(/, end: /\)/, - contains: [hljs.BACKSLASH_ESCAPE] + contains: [ hljs.BACKSLASH_ESCAPE ] } ] }; @@ -68,7 +72,10 @@ export default function(hljs) { return { name: 'Microtik RouterOS script', - aliases: ['routeros', 'mikrotik'], + aliases: [ + 'routeros', + 'mikrotik' + ], case_insensitive: true, keywords: { $pattern: /:?[\w-]+/, @@ -78,9 +85,18 @@ export default function(hljs) { contains: [ { // illegal syntax variants: [ - { begin: /\/\*/, end: /\*\// }, // -- comment - { begin: /\/\//, end: /$/ }, // Stan comment - { begin: /<\//, end: />/ }, // HTML tags + { // -- comment + begin: /\/\*/, + end: /\*\// + }, + { // Stan comment + begin: /\/\//, + end: /$/ + }, + { // HTML tags + begin: /<\//, + end: />/ + } ], illegal: /./ }, diff --git a/src/languages/rsl.js b/src/languages/rsl.js index 6dbca51329..d5de88eab1 100644 --- a/src/languages/rsl.js +++ b/src/languages/rsl.js @@ -30,14 +30,17 @@ export default function(hljs) { hljs.C_NUMBER_MODE, { className: 'meta', - begin: '#', end: '$' + begin: '#', + end: '$' }, { className: 'class', - beginKeywords: 'surface displacement light volume imager', end: '\\(' + beginKeywords: 'surface displacement light volume imager', + end: '\\(' }, { - beginKeywords: 'illuminate illuminance gather', end: '\\(' + beginKeywords: 'illuminate illuminance gather', + end: '\\(' } ] }; diff --git a/src/languages/ruleslanguage.js b/src/languages/ruleslanguage.js index 12368949fe..664d8bdef5 100644 --- a/src/languages/ruleslanguage.js +++ b/src/languages/ruleslanguage.js @@ -10,46 +10,48 @@ export default function(hljs) { return { name: 'Oracle Rules Language', keywords: { - keyword: 'BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE ' + - 'INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 ' + - 'INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 ' + - 'INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 ' + - 'INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 ' + - 'INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 ' + - 'INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 ' + - 'INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 ' + - 'INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 ' + - 'INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 ' + - 'INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 ' + - 'INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 ' + - 'INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 ' + - 'INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 ' + - 'INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 ' + - 'MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER ' + - 'OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE ' + - 'NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH ' + - 'IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND ' + - 'UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ' + - 'ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE ' + - 'GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE ' + - 'SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING ' + - 'DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF ' + - 'MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY ' + - 'YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE ' + - 'COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR ' + - 'READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ' + - 'ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE ' + - 'EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE ' + - 'SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL ' + - 'COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN ' + - 'MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING ' + - 'FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ' + - 'NUMDAYS READ_DATE STAGING', - built_in: 'IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML ' + - 'DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT ' + - 'DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE ' + - 'DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT ' + - 'DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME' + keyword: + 'BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE ' + + 'INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 ' + + 'INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 ' + + 'INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 ' + + 'INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 ' + + 'INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 ' + + 'INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 ' + + 'INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 ' + + 'INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 ' + + 'INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 ' + + 'INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 ' + + 'INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 ' + + 'INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 ' + + 'INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 ' + + 'INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 ' + + 'MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER ' + + 'OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE ' + + 'NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH ' + + 'IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND ' + + 'UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ' + + 'ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE ' + + 'GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE ' + + 'SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING ' + + 'DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF ' + + 'MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY ' + + 'YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE ' + + 'COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR ' + + 'READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ' + + 'ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE ' + + 'EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE ' + + 'SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL ' + + 'COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN ' + + 'MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING ' + + 'FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ' + + 'NUMDAYS READ_DATE STAGING', + built_in: + 'IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML ' + + 'DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT ' + + 'DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE ' + + 'DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT ' + + 'DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME' }, contains: [ hljs.C_LINE_COMMENT_MODE, @@ -60,8 +62,13 @@ export default function(hljs) { { className: 'literal', variants: [ - {begin: '#\\s+[a-zA-Z .]*', relevance: 0}, // looks like #-comment - {begin: '#[a-zA-Z .]+'} + { // looks like #-comment + begin: '#\\s+[a-zA-Z .]*', + relevance: 0 + }, + { + begin: '#[a-zA-Z .]+' + } ] } ] diff --git a/src/languages/rust.js b/src/languages/rust.js index 7b429d96a6..39f3ef163c 100644 --- a/src/languages/rust.js +++ b/src/languages/rust.js @@ -7,13 +7,13 @@ Category: common, system */ export default function(hljs) { - var NUM_SUFFIX = '([ui](8|16|32|64|128|size)|f(32|64))\?'; - var KEYWORDS = + const NUM_SUFFIX = '([ui](8|16|32|64|128|size)|f(32|64))\?'; + const KEYWORDS = 'abstract as async await become box break const continue crate do dyn ' + 'else enum extern false final fn for if impl in let loop macro match mod ' + 'move mut override priv pub ref return self Self static struct super ' + 'trait true try type typeof unsafe unsized use virtual where while yield'; - var BUILTINS = + const BUILTINS = // functions 'drop ' + // types @@ -35,7 +35,7 @@ export default function(hljs) { 'unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!'; return { name: 'Rust', - aliases: ['rs'], + aliases: [ 'rs' ], keywords: { $pattern: hljs.IDENT_RE + '!?', keyword: @@ -48,13 +48,22 @@ export default function(hljs) { illegal: ''