| | 'function' => '/\b([a-zA-Z_.][a-zA-Z0-9_.]*)\s*(?=\()/', |
| | 'number' => '/' . $float . '/', |
| | + ], |
| | + 'csharp' => [ |
| | + 'string' => '/(@"(?:""|[^"])*"|' . $str . ')/', |
| | + 'comment' => '/(\/\/[^\r\n]*|\/\*.*?\*\/)/ms', |
| | + 'preprocessor' => '/(^\s*#[^\r\n]*)/m', |
| | + 'keyword' => '/\b(?:abstract|as|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while)\b/', |
| | + 'function' => '/\b([a-zA-Z_][a-zA-Z0-9_]*)\s*(?=\()/', |
| | + 'number' => '/' . $int . '/', |
| | + ], |
| | + 'kotlin' => [ |
| | + 'string' => '/("""[\s\S]*?"""|' . $str . ')/', |
| | + 'comment' => '/(\/\/[^\r\n]*|\/\*.*?\*\/)/ms', |
| | + 'keyword' => '/\b(?:as|break|class|continue|do|else|false|for|fun|if|in|interface|is|null|object|package|return|super|this|throw|true|try|typealias|typeof|val|var|when|while)\b/', |
| | + 'function' => '/\b([a-zA-Z_][a-zA-Z0-9_]*)\s*(?=\()/', |
| | + 'number' => '/' . $int . '/', |
| | + ], |
| | + 'scala' => [ |
| | + 'string' => '/("""[\s\S]*?"""|' . $str . ')/', |
| | + 'comment' => '/(\/\/[^\r\n]*|\/\*.*?\*\/)/ms', |
| | + 'keyword' => '/\b(?:abstract|case|catch|class|def|do|else|extends|false|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|super|this|throw|trait|try|true|type|val|var|while|with|yield)\b/', |
| | + 'function' => '/\b([a-zA-Z_][a-zA-Z0-9_]*)\s*(?=\()/', |
| | + 'number' => '/' . $int . '/', |
| | + ], |
| | + 'groovy' => [ |
| | + 'string' => '/(\'\'\'[\s\S]*?\'\'\'|""".*?"""|"(?:\\\\.|[^"\\\\])*"|\'(?:\\\\.|[^\'\\\\])*\'|\/[^\/]+\/)/', |
| | + 'comment' => '/(\/\/[^\r\n]*|\/\*.*?\*\/)/ms', |
| | + 'keyword' => '/\b(?:def|as|assert|break|case|catch|class|const|continue|default|do|else|enum|extends|false|finally|for|goto|if|implements|import|in|instanceof|interface|new|null|package|return|super|switch|this|throw|throws|trait|true|try|var|void|while)\b/', |
| | + 'function' => '/\b([a-zA-Z_][a-zA-Z0-9_]*)\s*(?=\()/', |
| | + 'number' => '/' . $int . '/', |
| | + ], |
| | + 'dart' => [ |
| | + 'string' => '/(r?\'\'\'[\s\S]*?\'\'\'|r?"""[\s\S]*?"""|"(?:\\\\.|[^"\\\\])*"|\'(?:\\\\.|[^\'\\\\])*\')/', |
| | + 'comment' => '/(\/\/[^\r\n]*|\/\*.*?\*\/)/ms', |
| | + 'keyword' => '/\b(?:abstract|as|assert|async|await|break|case|catch|class|const|continue|default|do|else|enum|export|extends|extension|external|factory|false|final|finally|for|get|if|implements|import|in|interface|is|library|mixin|new|null|on|operator|part|rethrow|return|set|static|super|switch|sync|this|throw|true|try|typedef|var|void|while|with|yield)\b/', |
| | + 'function' => '/\b([a-zA-Z_][a-zA-Z0-9_]*)\s*(?=\()/', |
| | + 'number' => '/' . $int . '/', |
| | + ], |
| | + 'swift' => [ |
| | + 'string' => '/("""[\s\S]*?"""|' . $str . ')/', |
| | + 'comment' => '/(\/\/[^\r\n]*|\/\*.*?\*\/)/ms', |
| | + 'keyword' => '/\b(?:associatedtype|class|deinit|enum|extension|fileprivate|func|import|init|inout|internal|let|open|operator|private|protocol|public|rethrows|static|struct|subscript|typealias|var|break|case|continue|default|defer|do|else|fallthrough|for|guard|if|in|repeat|return|switch|where|while|as|Any|catch|false|is|nil|super|self|Self|throw|throws|true|try)\b/', |
| | + 'function' => '/\b([a-zA-Z_][a-zA-Z0-9_]*)\s*(?=\()/', |
| | + 'number' => '/' . $int . '/', |
| | + ], |
| | + 'perl' => [ |
| | + 'comment' => '/(#[^\r\n]*)/', |
| | + 'string' => '/(' . $str . '|`[^`]*`)/', |
| | + 'variable' => '/([$@%](?:\{[a-zA-Z_]\w*\}|[a-zA-Z_]\w*))/', |
| | + 'keyword' => '/\b(?:my|local|our|state|use|sub|package|if|else|elsif|unless|while|until|for|foreach|do|last|next|redo|goto|continue|return|print|printf|say|die|warn|eval|try|catch)\b/', |
| | + 'number' => '/' . $float . '/', |
| | + ], |
| | + 'powershell' => [ |
| | + 'comment' => '/(<#[\s\S]*?#>|#[^\r\n]*)/', |
| | + 'string' => '/(@"(?:""|[^"])*"@|@\'(?:[^[\'])*\'@|"(?:`.|[^"`])*"|\'(?:[^[\'])*\')/', |
| | + 'variable' => '/(\$[a-zA-Z0-9_]+)/', |
| | + 'keyword' => '/(?i)\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|In|InlineScript|Hidden|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/', |
| | + 'function' => '/\b([a-zA-Z_][a-zA-Z0-9_-]*)\s*(?=\()/', |
| | + 'number' => '/' . $int . '/', |
| | + ], |
| | + 'dockerfile' => [ |
| | + 'comment' => '/(#[^\r\n]*)/', |
| | + 'string' => '/' . $str . '/', |
| | + 'keyword' => '/(?i)^\s*(?:FROM|MAINTAINER|RUN|CMD|LABEL|EXPOSE|ENV|ADD|COPY|ENTRYPOINT|VOLUME|USER|WORKDIR|ARG|ONBUILD|STOPSIGNAL|HEALTHCHECK|SHELL)\b/m', |
| | + ], |
| | + 'containerfile' => [ |
| | + 'comment' => '/(#[^\r\n]*)/', |
| | + 'string' => '/' . $str . '/', |
| | + 'keyword' => '/(?i)^\s*(?:FROM|MAINTAINER|RUN|CMD|LABEL|EXPOSE|ENV|ADD|COPY|ENTRYPOINT|VOLUME|USER|WORKDIR|ARG|ONBUILD|STOPSIGNAL|HEALTHCHECK|SHELL)\b/m', |
| | + ], |
| | + 'makefile' => [ |
| | + 'comment' => '/(#[^\r\n]*)/', |
| | + 'variable' => '/(\$+[{(][^})]+[})])/', |
| | + 'keyword' => '/(?i)\b(?:include|define|endef|export|override|ifdef|ifndef|ifeq|ifneq|else|endif|vpath)\b/', |
| | + 'function' => '/^([a-zA-Z0-9._-]+):/m', |
| | + ], |
| | + 'diff' => [ |
| | + 'comment' => '/^(?:---| \+\+\+|index|diff).*/m', |
| | + 'meta' => '/^(?:@@).*/m', |
| | + 'inserted' => '/(^\+.*)/m', |
| | + 'deleted' => '/(^-.*)/m', |
| | ] |
| | ]; |