forked from forgejo/forgejo
Server-side syntax highlighting for all code (#12047)
* Server-side syntax hilighting for all code This PR does a few things: * Remove all traces of highlight.js * Use chroma library to provide fast syntax hilighting directly on the server * Provide syntax hilighting for diffs * Re-style both unified and split diffs views * Add custom syntax hilighting styling for both regular and arc-green Fixes #7729 Fixes #10157 Fixes #11825 Fixes #7728 Fixes #3872 Fixes #3682 And perhaps gets closer to #9553 * fix line marker * fix repo search * Fix single line select * properly load settings * npm uninstall highlight.js * review suggestion * code review * forgot to call function * fix test * Apply suggestions from code review suggestions from @silverwind thanks Co-authored-by: silverwind <me@silverwind.io> * code review * copy/paste error * Use const for highlight size limit * Update web_src/less/_repository.less Co-authored-by: Lauris BH <lauris@nix.lv> * update size limit to 1MB and other styling tweaks * fix highlighting for certain diff sections * fix test * add worker back as suggested Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
parent
ce5f2b9845
commit
af7ffaa279
336 changed files with 37293 additions and 769 deletions
42
vendor/github.com/alecthomas/chroma/lexers/t/tablegen.go
generated
vendored
Normal file
42
vendor/github.com/alecthomas/chroma/lexers/t/tablegen.go
generated
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// TableGen lexer.
|
||||
var Tablegen = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "TableGen",
|
||||
Aliases: []string{"tablegen"},
|
||||
Filenames: []string{"*.td"},
|
||||
MimeTypes: []string{"text/x-tablegen"},
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
Include("macro"),
|
||||
Include("whitespace"),
|
||||
{`c?"[^"]*?"`, LiteralString, nil},
|
||||
Include("keyword"),
|
||||
{`\$[_a-zA-Z][_\w]*`, NameVariable, nil},
|
||||
{`\d*[_a-zA-Z][_\w]*`, NameVariable, nil},
|
||||
{`\[\{[\w\W]*?\}\]`, LiteralString, nil},
|
||||
{`[+-]?\d+|0x[\da-fA-F]+|0b[01]+`, LiteralNumber, nil},
|
||||
{`[=<>{}\[\]()*.,!:;]`, Punctuation, nil},
|
||||
},
|
||||
"macro": {
|
||||
{`(#include\s+)("[^"]*")`, ByGroups(CommentPreproc, LiteralString), nil},
|
||||
{`^\s*#(ifdef|ifndef)\s+[_\w][_\w\d]*`, CommentPreproc, nil},
|
||||
{`^\s*#define\s+[_\w][_\w\d]*`, CommentPreproc, nil},
|
||||
{`^\s*#endif`, CommentPreproc, nil},
|
||||
},
|
||||
"whitespace": {
|
||||
{`(\n|\s)+`, Text, nil},
|
||||
{`//.*?\n`, Comment, nil},
|
||||
},
|
||||
"keyword": {
|
||||
{Words(``, `\b`, `bit`, `bits`, `class`, `code`, `dag`, `def`, `defm`, `field`, `foreach`, `in`, `int`, `let`, `list`, `multiclass`, `string`), Keyword, nil},
|
||||
},
|
||||
},
|
||||
))
|
61
vendor/github.com/alecthomas/chroma/lexers/t/tasm.go
generated
vendored
Normal file
61
vendor/github.com/alecthomas/chroma/lexers/t/tasm.go
generated
vendored
Normal file
|
@ -0,0 +1,61 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Tasm lexer.
|
||||
var Tasm = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "TASM",
|
||||
Aliases: []string{"tasm"},
|
||||
Filenames: []string{"*.asm", "*.ASM", "*.tasm"},
|
||||
MimeTypes: []string{"text/x-tasm"},
|
||||
CaseInsensitive: true,
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
{`^\s*%`, CommentPreproc, Push("preproc")},
|
||||
Include("whitespace"),
|
||||
{`[@a-z$._?][\w$.?#@~]*:`, NameLabel, nil},
|
||||
{`BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|ENDS|COMMON|CPU|GROUP|UPPERCASE|INCLUDE|EXPORT|LIBRARY|MODULE|PROC|ENDP|USES|ARG|DATASEG|UDATASEG|END|IDEAL|P386|MODEL|ASSUME|CODESEG|SIZE`, Keyword, Push("instruction-args")},
|
||||
{`([@a-z$._?][\w$.?#@~]*)(\s+)(db|dd|dw|T[A-Z][a-z]+)`, ByGroups(NameConstant, KeywordDeclaration, KeywordDeclaration), Push("instruction-args")},
|
||||
{`(?:res|d)[bwdqt]|times`, KeywordDeclaration, Push("instruction-args")},
|
||||
{`[@a-z$._?][\w$.?#@~]*`, NameFunction, Push("instruction-args")},
|
||||
{`[\r\n]+`, Text, nil},
|
||||
},
|
||||
"instruction-args": {
|
||||
{"\"(\\\\\"|[^\"\\n])*\"|'(\\\\'|[^'\\n])*'|`(\\\\`|[^`\\n])*`", LiteralString, nil},
|
||||
{`(?:0x[0-9a-f]+|$0[0-9a-f]*|[0-9]+[0-9a-f]*h)`, LiteralNumberHex, nil},
|
||||
{`[0-7]+q`, LiteralNumberOct, nil},
|
||||
{`[01]+b`, LiteralNumberBin, nil},
|
||||
{`[0-9]+\.e?[0-9]+`, LiteralNumberFloat, nil},
|
||||
{`[0-9]+`, LiteralNumberInteger, nil},
|
||||
Include("punctuation"),
|
||||
{`r[0-9][0-5]?[bwd]|[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]`, NameBuiltin, nil},
|
||||
{`[@a-z$._?][\w$.?#@~]*`, NameVariable, nil},
|
||||
{`(\\\s*)(;.*)([\r\n])`, ByGroups(Text, CommentSingle, Text), nil},
|
||||
{`[\r\n]+`, Text, Pop(1)},
|
||||
Include("whitespace"),
|
||||
},
|
||||
"preproc": {
|
||||
{`[^;\n]+`, CommentPreproc, nil},
|
||||
{`;.*?\n`, CommentSingle, Pop(1)},
|
||||
{`\n`, CommentPreproc, Pop(1)},
|
||||
},
|
||||
"whitespace": {
|
||||
{`[\n\r]`, Text, nil},
|
||||
{`\\[\n\r]`, Text, nil},
|
||||
{`[ \t]+`, Text, nil},
|
||||
{`;.*`, CommentSingle, nil},
|
||||
},
|
||||
"punctuation": {
|
||||
{`[,():\[\]]+`, Punctuation, nil},
|
||||
{`[&|^<>+*=/%~-]+`, Operator, nil},
|
||||
{`[$]+`, KeywordConstant, nil},
|
||||
{`seg|wrt|strict`, OperatorWord, nil},
|
||||
{`byte|[dq]?word`, KeywordType, nil},
|
||||
},
|
||||
},
|
||||
))
|
116
vendor/github.com/alecthomas/chroma/lexers/t/tcl.go
generated
vendored
Normal file
116
vendor/github.com/alecthomas/chroma/lexers/t/tcl.go
generated
vendored
Normal file
|
@ -0,0 +1,116 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Tcl lexer.
|
||||
var Tcl = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "Tcl",
|
||||
Aliases: []string{"tcl"},
|
||||
Filenames: []string{"*.tcl", "*.rvt"},
|
||||
MimeTypes: []string{"text/x-tcl", "text/x-script.tcl", "application/x-tcl"},
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
Include("command"),
|
||||
Include("basic"),
|
||||
Include("data"),
|
||||
{`\}`, Keyword, nil},
|
||||
},
|
||||
"command": {
|
||||
{Words(`\b`, `\b`, `after`, `apply`, `array`, `break`, `catch`, `continue`, `elseif`, `else`, `error`, `eval`, `expr`, `for`, `foreach`, `global`, `if`, `namespace`, `proc`, `rename`, `return`, `set`, `switch`, `then`, `trace`, `unset`, `update`, `uplevel`, `upvar`, `variable`, `vwait`, `while`), Keyword, Push("params")},
|
||||
{Words(`\b`, `\b`, `append`, `bgerror`, `binary`, `cd`, `chan`, `clock`, `close`, `concat`, `dde`, `dict`, `encoding`, `eof`, `exec`, `exit`, `fblocked`, `fconfigure`, `fcopy`, `file`, `fileevent`, `flush`, `format`, `gets`, `glob`, `history`, `http`, `incr`, `info`, `interp`, `join`, `lappend`, `lassign`, `lindex`, `linsert`, `list`, `llength`, `load`, `loadTk`, `lrange`, `lrepeat`, `lreplace`, `lreverse`, `lsearch`, `lset`, `lsort`, `mathfunc`, `mathop`, `memory`, `msgcat`, `open`, `package`, `pid`, `pkg::create`, `pkg_mkIndex`, `platform`, `platform::shell`, `puts`, `pwd`, `re_syntax`, `read`, `refchan`, `regexp`, `registry`, `regsub`, `scan`, `seek`, `socket`, `source`, `split`, `string`, `subst`, `tell`, `time`, `tm`, `unknown`, `unload`), NameBuiltin, Push("params")},
|
||||
{`([\w.-]+)`, NameVariable, Push("params")},
|
||||
{`#`, Comment, Push("comment")},
|
||||
},
|
||||
"command-in-brace": {
|
||||
{Words(`\b`, `\b`, `after`, `apply`, `array`, `break`, `catch`, `continue`, `elseif`, `else`, `error`, `eval`, `expr`, `for`, `foreach`, `global`, `if`, `namespace`, `proc`, `rename`, `return`, `set`, `switch`, `then`, `trace`, `unset`, `update`, `uplevel`, `upvar`, `variable`, `vwait`, `while`), Keyword, Push("params-in-brace")},
|
||||
{Words(`\b`, `\b`, `append`, `bgerror`, `binary`, `cd`, `chan`, `clock`, `close`, `concat`, `dde`, `dict`, `encoding`, `eof`, `exec`, `exit`, `fblocked`, `fconfigure`, `fcopy`, `file`, `fileevent`, `flush`, `format`, `gets`, `glob`, `history`, `http`, `incr`, `info`, `interp`, `join`, `lappend`, `lassign`, `lindex`, `linsert`, `list`, `llength`, `load`, `loadTk`, `lrange`, `lrepeat`, `lreplace`, `lreverse`, `lsearch`, `lset`, `lsort`, `mathfunc`, `mathop`, `memory`, `msgcat`, `open`, `package`, `pid`, `pkg::create`, `pkg_mkIndex`, `platform`, `platform::shell`, `puts`, `pwd`, `re_syntax`, `read`, `refchan`, `regexp`, `registry`, `regsub`, `scan`, `seek`, `socket`, `source`, `split`, `string`, `subst`, `tell`, `time`, `tm`, `unknown`, `unload`), NameBuiltin, Push("params-in-brace")},
|
||||
{`([\w.-]+)`, NameVariable, Push("params-in-brace")},
|
||||
{`#`, Comment, Push("comment")},
|
||||
},
|
||||
"command-in-bracket": {
|
||||
{Words(`\b`, `\b`, `after`, `apply`, `array`, `break`, `catch`, `continue`, `elseif`, `else`, `error`, `eval`, `expr`, `for`, `foreach`, `global`, `if`, `namespace`, `proc`, `rename`, `return`, `set`, `switch`, `then`, `trace`, `unset`, `update`, `uplevel`, `upvar`, `variable`, `vwait`, `while`), Keyword, Push("params-in-bracket")},
|
||||
{Words(`\b`, `\b`, `append`, `bgerror`, `binary`, `cd`, `chan`, `clock`, `close`, `concat`, `dde`, `dict`, `encoding`, `eof`, `exec`, `exit`, `fblocked`, `fconfigure`, `fcopy`, `file`, `fileevent`, `flush`, `format`, `gets`, `glob`, `history`, `http`, `incr`, `info`, `interp`, `join`, `lappend`, `lassign`, `lindex`, `linsert`, `list`, `llength`, `load`, `loadTk`, `lrange`, `lrepeat`, `lreplace`, `lreverse`, `lsearch`, `lset`, `lsort`, `mathfunc`, `mathop`, `memory`, `msgcat`, `open`, `package`, `pid`, `pkg::create`, `pkg_mkIndex`, `platform`, `platform::shell`, `puts`, `pwd`, `re_syntax`, `read`, `refchan`, `regexp`, `registry`, `regsub`, `scan`, `seek`, `socket`, `source`, `split`, `string`, `subst`, `tell`, `time`, `tm`, `unknown`, `unload`), NameBuiltin, Push("params-in-bracket")},
|
||||
{`([\w.-]+)`, NameVariable, Push("params-in-bracket")},
|
||||
{`#`, Comment, Push("comment")},
|
||||
},
|
||||
"command-in-paren": {
|
||||
{Words(`\b`, `\b`, `after`, `apply`, `array`, `break`, `catch`, `continue`, `elseif`, `else`, `error`, `eval`, `expr`, `for`, `foreach`, `global`, `if`, `namespace`, `proc`, `rename`, `return`, `set`, `switch`, `then`, `trace`, `unset`, `update`, `uplevel`, `upvar`, `variable`, `vwait`, `while`), Keyword, Push("params-in-paren")},
|
||||
{Words(`\b`, `\b`, `append`, `bgerror`, `binary`, `cd`, `chan`, `clock`, `close`, `concat`, `dde`, `dict`, `encoding`, `eof`, `exec`, `exit`, `fblocked`, `fconfigure`, `fcopy`, `file`, `fileevent`, `flush`, `format`, `gets`, `glob`, `history`, `http`, `incr`, `info`, `interp`, `join`, `lappend`, `lassign`, `lindex`, `linsert`, `list`, `llength`, `load`, `loadTk`, `lrange`, `lrepeat`, `lreplace`, `lreverse`, `lsearch`, `lset`, `lsort`, `mathfunc`, `mathop`, `memory`, `msgcat`, `open`, `package`, `pid`, `pkg::create`, `pkg_mkIndex`, `platform`, `platform::shell`, `puts`, `pwd`, `re_syntax`, `read`, `refchan`, `regexp`, `registry`, `regsub`, `scan`, `seek`, `socket`, `source`, `split`, `string`, `subst`, `tell`, `time`, `tm`, `unknown`, `unload`), NameBuiltin, Push("params-in-paren")},
|
||||
{`([\w.-]+)`, NameVariable, Push("params-in-paren")},
|
||||
{`#`, Comment, Push("comment")},
|
||||
},
|
||||
"basic": {
|
||||
{`\(`, Keyword, Push("paren")},
|
||||
{`\[`, Keyword, Push("bracket")},
|
||||
{`\{`, Keyword, Push("brace")},
|
||||
{`"`, LiteralStringDouble, Push("string")},
|
||||
{`(eq|ne|in|ni)\b`, OperatorWord, nil},
|
||||
{`!=|==|<<|>>|<=|>=|&&|\|\||\*\*|[-+~!*/%<>&^|?:]`, Operator, nil},
|
||||
},
|
||||
"data": {
|
||||
{`\s+`, Text, nil},
|
||||
{`0x[a-fA-F0-9]+`, LiteralNumberHex, nil},
|
||||
{`0[0-7]+`, LiteralNumberOct, nil},
|
||||
{`\d+\.\d+`, LiteralNumberFloat, nil},
|
||||
{`\d+`, LiteralNumberInteger, nil},
|
||||
{`\$([\w.:-]+)`, NameVariable, nil},
|
||||
{`([\w.:-]+)`, Text, nil},
|
||||
},
|
||||
"params": {
|
||||
{`;`, Keyword, Pop(1)},
|
||||
{`\n`, Text, Pop(1)},
|
||||
{`(else|elseif|then)\b`, Keyword, nil},
|
||||
Include("basic"),
|
||||
Include("data"),
|
||||
},
|
||||
"params-in-brace": {
|
||||
{`\}`, Keyword, Push("#pop", "#pop")},
|
||||
Include("params"),
|
||||
},
|
||||
"params-in-paren": {
|
||||
{`\)`, Keyword, Push("#pop", "#pop")},
|
||||
Include("params"),
|
||||
},
|
||||
"params-in-bracket": {
|
||||
{`\]`, Keyword, Push("#pop", "#pop")},
|
||||
Include("params"),
|
||||
},
|
||||
"string": {
|
||||
{`\[`, LiteralStringDouble, Push("string-square")},
|
||||
{`(?s)(\\\\|\\[0-7]+|\\.|[^"\\])`, LiteralStringDouble, nil},
|
||||
{`"`, LiteralStringDouble, Pop(1)},
|
||||
},
|
||||
"string-square": {
|
||||
{`\[`, LiteralStringDouble, Push("string-square")},
|
||||
{`(?s)(\\\\|\\[0-7]+|\\.|\\\n|[^\]\\])`, LiteralStringDouble, nil},
|
||||
{`\]`, LiteralStringDouble, Pop(1)},
|
||||
},
|
||||
"brace": {
|
||||
{`\}`, Keyword, Pop(1)},
|
||||
Include("command-in-brace"),
|
||||
Include("basic"),
|
||||
Include("data"),
|
||||
},
|
||||
"paren": {
|
||||
{`\)`, Keyword, Pop(1)},
|
||||
Include("command-in-paren"),
|
||||
Include("basic"),
|
||||
Include("data"),
|
||||
},
|
||||
"bracket": {
|
||||
{`\]`, Keyword, Pop(1)},
|
||||
Include("command-in-bracket"),
|
||||
Include("basic"),
|
||||
Include("data"),
|
||||
},
|
||||
"comment": {
|
||||
{`.*[^\\]\n`, Comment, Pop(1)},
|
||||
{`.*\\\n`, Comment, nil},
|
||||
},
|
||||
},
|
||||
))
|
59
vendor/github.com/alecthomas/chroma/lexers/t/tcsh.go
generated
vendored
Normal file
59
vendor/github.com/alecthomas/chroma/lexers/t/tcsh.go
generated
vendored
Normal file
|
@ -0,0 +1,59 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Tcsh lexer.
|
||||
var Tcsh = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "Tcsh",
|
||||
Aliases: []string{"tcsh", "csh"},
|
||||
Filenames: []string{"*.tcsh", "*.csh"},
|
||||
MimeTypes: []string{"application/x-csh"},
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
Include("basic"),
|
||||
{`\$\(`, Keyword, Push("paren")},
|
||||
{`\$\{#?`, Keyword, Push("curly")},
|
||||
{"`", LiteralStringBacktick, Push("backticks")},
|
||||
Include("data"),
|
||||
},
|
||||
"basic": {
|
||||
{`\b(if|endif|else|while|then|foreach|case|default|continue|goto|breaksw|end|switch|endsw)\s*\b`, Keyword, nil},
|
||||
{`\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|glob|getspath|hashstat|history|hup|inlib|jobs|kill|limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|source|stop|suspend|source|suspend|telltc|time|umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|ver|wait|warp|watchlog|where|which)\s*\b`, NameBuiltin, nil},
|
||||
{`#.*`, Comment, nil},
|
||||
{`\\[\w\W]`, LiteralStringEscape, nil},
|
||||
{`(\b\w+)(\s*)(=)`, ByGroups(NameVariable, Text, Operator), nil},
|
||||
{`[\[\]{}()=]+`, Operator, nil},
|
||||
{`<<\s*(\'?)\\?(\w+)[\w\W]+?\2`, LiteralString, nil},
|
||||
{`;`, Punctuation, nil},
|
||||
},
|
||||
"data": {
|
||||
{`(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"`, LiteralStringDouble, nil},
|
||||
{`(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'`, LiteralStringSingle, nil},
|
||||
{`\s+`, Text, nil},
|
||||
{"[^=\\s\\[\\]{}()$\"\\'`\\\\;#]+", Text, nil},
|
||||
{`\d+(?= |\Z)`, LiteralNumber, nil},
|
||||
{`\$#?(\w+|.)`, NameVariable, nil},
|
||||
},
|
||||
"curly": {
|
||||
{`\}`, Keyword, Pop(1)},
|
||||
{`:-`, Keyword, nil},
|
||||
{`\w+`, NameVariable, nil},
|
||||
{"[^}:\"\\'`$]+", Punctuation, nil},
|
||||
{`:`, Punctuation, nil},
|
||||
Include("root"),
|
||||
},
|
||||
"paren": {
|
||||
{`\)`, Keyword, Pop(1)},
|
||||
Include("root"),
|
||||
},
|
||||
"backticks": {
|
||||
{"`", LiteralStringBacktick, Pop(1)},
|
||||
Include("root"),
|
||||
},
|
||||
},
|
||||
))
|
42
vendor/github.com/alecthomas/chroma/lexers/t/termcap.go
generated
vendored
Normal file
42
vendor/github.com/alecthomas/chroma/lexers/t/termcap.go
generated
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Termcap lexer.
|
||||
var Termcap = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "Termcap",
|
||||
Aliases: []string{"termcap"},
|
||||
Filenames: []string{"termcap", "termcap.src"},
|
||||
MimeTypes: []string{},
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
{`^#.*$`, Comment, nil},
|
||||
{`^[^\s#:|]+`, NameTag, Push("names")},
|
||||
},
|
||||
"names": {
|
||||
{`\n`, Text, Pop(1)},
|
||||
{`:`, Punctuation, Push("defs")},
|
||||
{`\|`, Punctuation, nil},
|
||||
{`[^:|]+`, NameAttribute, nil},
|
||||
},
|
||||
"defs": {
|
||||
{`\\\n[ \t]*`, Text, nil},
|
||||
{`\n[ \t]*`, Text, Pop(2)},
|
||||
{`(#)([0-9]+)`, ByGroups(Operator, LiteralNumber), nil},
|
||||
{`=`, Operator, Push("data")},
|
||||
{`:`, Punctuation, nil},
|
||||
{`[^\s:=#]+`, NameClass, nil},
|
||||
},
|
||||
"data": {
|
||||
{`\\072`, Literal, nil},
|
||||
{`:`, Punctuation, Pop(1)},
|
||||
{`[^:\\]+`, Literal, nil},
|
||||
{`.`, Literal, nil},
|
||||
},
|
||||
},
|
||||
))
|
42
vendor/github.com/alecthomas/chroma/lexers/t/terminfo.go
generated
vendored
Normal file
42
vendor/github.com/alecthomas/chroma/lexers/t/terminfo.go
generated
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Terminfo lexer.
|
||||
var Terminfo = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "Terminfo",
|
||||
Aliases: []string{"terminfo"},
|
||||
Filenames: []string{"terminfo", "terminfo.src"},
|
||||
MimeTypes: []string{},
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
{`^#.*$`, Comment, nil},
|
||||
{`^[^\s#,|]+`, NameTag, Push("names")},
|
||||
},
|
||||
"names": {
|
||||
{`\n`, Text, Pop(1)},
|
||||
{`(,)([ \t]*)`, ByGroups(Punctuation, Text), Push("defs")},
|
||||
{`\|`, Punctuation, nil},
|
||||
{`[^,|]+`, NameAttribute, nil},
|
||||
},
|
||||
"defs": {
|
||||
{`\n[ \t]+`, Text, nil},
|
||||
{`\n`, Text, Pop(2)},
|
||||
{`(#)([0-9]+)`, ByGroups(Operator, LiteralNumber), nil},
|
||||
{`=`, Operator, Push("data")},
|
||||
{`(,)([ \t]*)`, ByGroups(Punctuation, Text), nil},
|
||||
{`[^\s,=#]+`, NameClass, nil},
|
||||
},
|
||||
"data": {
|
||||
{`\\[,\\]`, Literal, nil},
|
||||
{`(,)([ \t]*)`, ByGroups(Punctuation, Text), Pop(1)},
|
||||
{`[^\\,]+`, Literal, nil},
|
||||
{`.`, Literal, nil},
|
||||
},
|
||||
},
|
||||
))
|
60
vendor/github.com/alecthomas/chroma/lexers/t/terraform.go
generated
vendored
Normal file
60
vendor/github.com/alecthomas/chroma/lexers/t/terraform.go
generated
vendored
Normal file
|
@ -0,0 +1,60 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Terraform lexer.
|
||||
var Terraform = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "Terraform",
|
||||
Aliases: []string{"terraform", "tf"},
|
||||
Filenames: []string{"*.tf"},
|
||||
MimeTypes: []string{"application/x-tf", "application/x-terraform"},
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
{`[\[\](),.{}]`, Punctuation, nil},
|
||||
{`-?[0-9]+`, LiteralNumber, nil},
|
||||
{`=>`, Punctuation, nil},
|
||||
{Words(``, `\b`, `true`, `false`), KeywordConstant, nil},
|
||||
{`/(?s)\*(((?!\*/).)*)\*/`, CommentMultiline, nil},
|
||||
{`\s*(#|//).*\n`, CommentSingle, nil},
|
||||
{`([a-zA-Z]\w*)(\s*)(=(?!>))`, ByGroups(NameAttribute, Text, Text), nil},
|
||||
{Words(`^\s*`, `\b`, `variable`, `data`, `resource`, `provider`, `provisioner`, `module`, `output`), KeywordReserved, nil},
|
||||
{Words(``, `\b`, `for`, `in`), Keyword, nil},
|
||||
{Words(``, ``, `count`, `data`, `var`, `module`, `each`), NameBuiltin, nil},
|
||||
{Words(``, `\b`, `abs`, `ceil`, `floor`, `log`, `max`, `min`, `parseint`, `pow`, `signum`), NameBuiltin, nil},
|
||||
{Words(``, `\b`, `chomp`, `format`, `formatlist`, `indent`, `join`, `lower`, `regex`, `regexall`, `replace`, `split`, `strrev`, `substr`, `title`, `trim`, `trimprefix`, `trimsuffix`, `trimspace`, `upper`), NameBuiltin, nil},
|
||||
{Words(`[^.]`, `\b`, `chunklist`, `coalesce`, `coalescelist`, `compact`, `concat`, `contains`, `distinct`, `element`, `flatten`, `index`, `keys`, `length`, `list`, `lookup`, `map`, `matchkeys`, `merge`, `range`, `reverse`, `setintersection`, `setproduct`, `setsubtract`, `setunion`, `slice`, `sort`, `transpose`, `values`, `zipmap`), NameBuiltin, nil},
|
||||
{Words(`[^.]`, `\b`, `base64decode`, `base64encode`, `base64gzip`, `csvdecode`, `jsondecode`, `jsonencode`, `urlencode`, `yamldecode`, `yamlencode`), NameBuiltin, nil},
|
||||
{Words(``, `\b`, `abspath`, `dirname`, `pathexpand`, `basename`, `file`, `fileexists`, `fileset`, `filebase64`, `templatefile`), NameBuiltin, nil},
|
||||
{Words(``, `\b`, `formatdate`, `timeadd`, `timestamp`), NameBuiltin, nil},
|
||||
{Words(``, `\b`, `base64sha256`, `base64sha512`, `bcrypt`, `filebase64sha256`, `filebase64sha512`, `filemd5`, `filesha1`, `filesha256`, `filesha512`, `md5`, `rsadecrypt`, `sha1`, `sha256`, `sha512`, `uuid`, `uuidv5`), NameBuiltin, nil},
|
||||
{Words(``, `\b`, `cidrhost`, `cidrnetmask`, `cidrsubnet`), NameBuiltin, nil},
|
||||
{Words(``, `\b`, `can`, `tobool`, `tolist`, `tomap`, `tonumber`, `toset`, `tostring`, `try`), NameBuiltin, nil},
|
||||
{`=(?!>)|\+|-|\*|\/|:|!|%|>|<(?!<)|>=|<=|==|!=|&&|\||\?`, Operator, nil},
|
||||
{`\n|\s+|\\\n`, Text, nil},
|
||||
{`[a-zA-Z]\w*`, NameOther, nil},
|
||||
{`"`, LiteralStringDouble, Push("string")},
|
||||
{`(?s)(<<-?)(\w+)(\n\s*(?:(?!\2).)*\s*\n\s*)(\2)`, ByGroups(Operator, Operator, String, Operator), nil},
|
||||
},
|
||||
"declaration": {
|
||||
{`(\s*)("(?:\\\\|\\"|[^"])*")(\s*)`, ByGroups(Text, NameVariable, Text), nil},
|
||||
{`\{`, Punctuation, Pop(1)},
|
||||
},
|
||||
"string": {
|
||||
{`"`, LiteralStringDouble, Pop(1)},
|
||||
{`\\\\`, LiteralStringDouble, nil},
|
||||
{`\\\\"`, LiteralStringDouble, nil},
|
||||
{`\$\{`, LiteralStringInterpol, Push("interp-inside")},
|
||||
{`\$`, LiteralStringDouble, nil},
|
||||
{`[^"\\\\$]+`, LiteralStringDouble, nil},
|
||||
},
|
||||
"interp-inside": {
|
||||
{`\}`, LiteralStringInterpol, Pop(1)},
|
||||
Include("root"),
|
||||
},
|
||||
},
|
||||
))
|
56
vendor/github.com/alecthomas/chroma/lexers/t/tex.go
generated
vendored
Normal file
56
vendor/github.com/alecthomas/chroma/lexers/t/tex.go
generated
vendored
Normal file
|
@ -0,0 +1,56 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Tex lexer.
|
||||
var TeX = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "TeX",
|
||||
Aliases: []string{"tex", "latex"},
|
||||
Filenames: []string{"*.tex", "*.aux", "*.toc"},
|
||||
MimeTypes: []string{"text/x-tex", "text/x-latex"},
|
||||
},
|
||||
Rules{
|
||||
"general": {
|
||||
{`%.*?\n`, Comment, nil},
|
||||
{`[{}]`, NameBuiltin, nil},
|
||||
{`[&_^]`, NameBuiltin, nil},
|
||||
},
|
||||
"root": {
|
||||
{`\\\[`, LiteralStringBacktick, Push("displaymath")},
|
||||
{`\\\(`, LiteralString, Push("inlinemath")},
|
||||
{`\$\$`, LiteralStringBacktick, Push("displaymath")},
|
||||
{`\$`, LiteralString, Push("inlinemath")},
|
||||
{`\\([a-zA-Z]+|.)`, Keyword, Push("command")},
|
||||
{`\\$`, Keyword, nil},
|
||||
Include("general"),
|
||||
{`[^\\$%&_^{}]+`, Text, nil},
|
||||
},
|
||||
"math": {
|
||||
{`\\([a-zA-Z]+|.)`, NameVariable, nil},
|
||||
Include("general"),
|
||||
{`[0-9]+`, LiteralNumber, nil},
|
||||
{`[-=!+*/()\[\]]`, Operator, nil},
|
||||
{`[^=!+*/()\[\]\\$%&_^{}0-9-]+`, NameBuiltin, nil},
|
||||
},
|
||||
"inlinemath": {
|
||||
{`\\\)`, LiteralString, Pop(1)},
|
||||
{`\$`, LiteralString, Pop(1)},
|
||||
Include("math"),
|
||||
},
|
||||
"displaymath": {
|
||||
{`\\\]`, LiteralString, Pop(1)},
|
||||
{`\$\$`, LiteralString, Pop(1)},
|
||||
{`\$`, NameBuiltin, nil},
|
||||
Include("math"),
|
||||
},
|
||||
"command": {
|
||||
{`\[.*?\]`, NameAttribute, nil},
|
||||
{`\*`, Keyword, nil},
|
||||
Default(Pop(1)),
|
||||
},
|
||||
},
|
||||
))
|
73
vendor/github.com/alecthomas/chroma/lexers/t/thrift.go
generated
vendored
Normal file
73
vendor/github.com/alecthomas/chroma/lexers/t/thrift.go
generated
vendored
Normal file
|
@ -0,0 +1,73 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Thrift lexer.
|
||||
var Thrift = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "Thrift",
|
||||
Aliases: []string{"thrift"},
|
||||
Filenames: []string{"*.thrift"},
|
||||
MimeTypes: []string{"application/x-thrift"},
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
Include("whitespace"),
|
||||
Include("comments"),
|
||||
{`"`, LiteralStringDouble, Combined("stringescape", "dqs")},
|
||||
{`\'`, LiteralStringSingle, Combined("stringescape", "sqs")},
|
||||
{`(namespace)(\s+)`, ByGroups(KeywordNamespace, TextWhitespace), Push("namespace")},
|
||||
{`(enum|union|struct|service|exception)(\s+)`, ByGroups(KeywordDeclaration, TextWhitespace), Push("class")},
|
||||
{`((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()`, ByGroups(UsingSelf("root"), NameFunction, Text, Operator), nil},
|
||||
Include("keywords"),
|
||||
Include("numbers"),
|
||||
{`[&=]`, Operator, nil},
|
||||
{`[:;,{}()<>\[\]]`, Punctuation, nil},
|
||||
{`[a-zA-Z_](\.\w|\w)*`, Name, nil},
|
||||
},
|
||||
"whitespace": {
|
||||
{`\n`, TextWhitespace, nil},
|
||||
{`\s+`, TextWhitespace, nil},
|
||||
},
|
||||
"comments": {
|
||||
{`#.*$`, Comment, nil},
|
||||
{`//.*?\n`, Comment, nil},
|
||||
{`/\*[\w\W]*?\*/`, CommentMultiline, nil},
|
||||
},
|
||||
"stringescape": {
|
||||
{`\\([\\nrt"\'])`, LiteralStringEscape, nil},
|
||||
},
|
||||
"dqs": {
|
||||
{`"`, LiteralStringDouble, Pop(1)},
|
||||
{`[^\\"\n]+`, LiteralStringDouble, nil},
|
||||
},
|
||||
"sqs": {
|
||||
{`'`, LiteralStringSingle, Pop(1)},
|
||||
{`[^\\\'\n]+`, LiteralStringSingle, nil},
|
||||
},
|
||||
"namespace": {
|
||||
{`[a-z*](\.\w|\w)*`, NameNamespace, Pop(1)},
|
||||
Default(Pop(1)),
|
||||
},
|
||||
"class": {
|
||||
{`[a-zA-Z_]\w*`, NameClass, Pop(1)},
|
||||
Default(Pop(1)),
|
||||
},
|
||||
"keywords": {
|
||||
{`(async|oneway|extends|throws|required|optional)\b`, Keyword, nil},
|
||||
{`(true|false)\b`, KeywordConstant, nil},
|
||||
{`(const|typedef)\b`, KeywordDeclaration, nil},
|
||||
{Words(``, `\b`, `cpp_namespace`, `cpp_include`, `cpp_type`, `java_package`, `cocoa_prefix`, `csharp_namespace`, `delphi_namespace`, `php_namespace`, `py_module`, `perl_package`, `ruby_namespace`, `smalltalk_category`, `smalltalk_prefix`, `xsd_all`, `xsd_optional`, `xsd_nillable`, `xsd_namespace`, `xsd_attrs`, `include`), KeywordNamespace, nil},
|
||||
{Words(``, `\b`, `void`, `bool`, `byte`, `i16`, `i32`, `i64`, `double`, `string`, `binary`, `map`, `list`, `set`, `slist`, `senum`), KeywordType, nil},
|
||||
{Words(`\b`, `\b`, `BEGIN`, `END`, `__CLASS__`, `__DIR__`, `__FILE__`, `__FUNCTION__`, `__LINE__`, `__METHOD__`, `__NAMESPACE__`, `abstract`, `alias`, `and`, `args`, `as`, `assert`, `begin`, `break`, `case`, `catch`, `class`, `clone`, `continue`, `declare`, `def`, `default`, `del`, `delete`, `do`, `dynamic`, `elif`, `else`, `elseif`, `elsif`, `end`, `enddeclare`, `endfor`, `endforeach`, `endif`, `endswitch`, `endwhile`, `ensure`, `except`, `exec`, `finally`, `float`, `for`, `foreach`, `function`, `global`, `goto`, `if`, `implements`, `import`, `in`, `inline`, `instanceof`, `interface`, `is`, `lambda`, `module`, `native`, `new`, `next`, `nil`, `not`, `or`, `pass`, `public`, `print`, `private`, `protected`, `raise`, `redo`, `rescue`, `retry`, `register`, `return`, `self`, `sizeof`, `static`, `super`, `switch`, `synchronized`, `then`, `this`, `throw`, `transient`, `try`, `undef`, `unless`, `unsigned`, `until`, `use`, `var`, `virtual`, `volatile`, `when`, `while`, `with`, `xor`, `yield`), KeywordReserved, nil},
|
||||
},
|
||||
"numbers": {
|
||||
{`[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)`, LiteralNumberFloat, nil},
|
||||
{`[+-]?0x[0-9A-Fa-f]+`, LiteralNumberHex, nil},
|
||||
{`[+-]?[0-9]+`, LiteralNumberInteger, nil},
|
||||
},
|
||||
},
|
||||
))
|
29
vendor/github.com/alecthomas/chroma/lexers/t/toml.go
generated
vendored
Normal file
29
vendor/github.com/alecthomas/chroma/lexers/t/toml.go
generated
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
var TOML = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "TOML",
|
||||
Aliases: []string{"toml"},
|
||||
Filenames: []string{"*.toml"},
|
||||
MimeTypes: []string{"text/x-toml"},
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
{`\s+`, Text, nil},
|
||||
{`#.*`, Comment, nil},
|
||||
{Words(``, `\b`, `true`, `false`), KeywordConstant, nil},
|
||||
{`\d\d\d\d-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d\+)?(Z|[+-]\d{2}:\d{2})`, LiteralDate, nil},
|
||||
{`[+-]?[0-9](_?\d)*\.\d+`, LiteralNumberFloat, nil},
|
||||
{`[+-]?[0-9](_?\d)*`, LiteralNumberInteger, nil},
|
||||
{`"(\\\\|\\"|[^"])*"`, StringDouble, nil},
|
||||
{`'(\\\\|\\'|[^'])*'`, StringSingle, nil},
|
||||
{`[.,=\[\]]`, Punctuation, nil},
|
||||
{`[^\W\d]\w*`, NameOther, nil},
|
||||
},
|
||||
},
|
||||
))
|
40
vendor/github.com/alecthomas/chroma/lexers/t/tradingview.go
generated
vendored
Normal file
40
vendor/github.com/alecthomas/chroma/lexers/t/tradingview.go
generated
vendored
Normal file
|
@ -0,0 +1,40 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// TradingView lexer
|
||||
var TradingView = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "TradingView",
|
||||
Aliases: []string{"tradingview", "tv"},
|
||||
Filenames: []string{"*.tv"},
|
||||
MimeTypes: []string{"text/x-tradingview"},
|
||||
DotAll: true,
|
||||
EnsureNL: true,
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
{`[^\S\n]+|\n|[()]`, Text, nil},
|
||||
{`(//.*?)(\n)`, ByGroups(CommentSingle, Text), nil},
|
||||
{`>=|<=|==|!=|>|<|\?|-|\+|\*|\/|%|\[|\]`, Operator, nil},
|
||||
{`[:,.]`, Punctuation, nil},
|
||||
{`=`, KeywordPseudo, nil},
|
||||
{`"(\\\\|\\"|[^"\n])*["\n]`, LiteralString, nil},
|
||||
{`'\\.'|'[^\\]'`, LiteralString, nil},
|
||||
{`[0-9](\.[0-9]*)?([eE][+-][0-9]+)?`, LiteralNumber, nil},
|
||||
{`#[a-fA-F0-9]{8}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{3}`, LiteralStringOther, nil},
|
||||
{`(abs|acos|alertcondition|alma|asin|atan|atr|avg|barcolor|barssince|bgcolor|cci|ceil|change|cog|color\.new|correlation|cos|crossover|crossunder|cum|dev|ema|exp|falling|fill|fixnan|floor|heikinashi|highest|highestbars|hline|iff|kagi|label\.(delete|get_text|get_x|get_y|new|set_color|set_size|set_style|set_text|set_textcolor|set_x|set_xloc|set_xy|set_y|set_yloc)|line\.(new|delete|get_x1|get_x2|get_y1|get_y2|set_color|set_width|set_style|set_extend|set_xy1|set_xy2|set_x1|set_x2|set_y1|set_y2|set_xloc)|linebreak|linreg|log|log10|lowest|lowestbars|macd|max|max_bars_back|min|mom|nz|percentile_(linear_interpolation|nearest_rank)|percentrank|pivothigh|pivotlow|plot|plotarrow|plotbar|plotcandle|plotchar|plotshape|pointfigure|pow|renko|rising|rma|roc|round|rsi|sar|security|sign|sin|sma|sqrt|stdev|stoch|study|sum|swma|tan|timestamp|tostring|tsi|valuewhen|variance|vwma|wma|strategy\.(cancel|cancel_all|close|close_all|entry|exit|order|risk\.(allow_entry_in|max_cons_loss_days|max_drawdown|max_intraday_filled_orders|max_intraday_loss|max_position_size)))\b`, NameFunction, nil},
|
||||
{`\b(bool|color|cross|dayofmonth|dayofweek|float|hour|input|int|label|line|minute|month|na|offset|second|strategy|string|tickerid|time|tr|vwap|weekofyear|year)(\()`, ByGroups(NameFunction, Text), nil}, // functions that can also be variable
|
||||
{`(accdist|adjustment\.(dividends|none|splits)|aqua|area|areabr|bar_index|black|blue|bool|circles|close|columns|currency\.(AUD|CAD|CHF|EUR|GBP|HKD|JPY|NOK|NONE|NZD|RUB|SEK|SGD|TRY|USD|ZAR)|color\.(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|dashed|dotted|dayofweek\.(monday|tuesday|wednesday|thursday|friday|saturday|sunday)|extend\.(both|left|right|none)|float|format\.(inherit|price|volume)|friday|fuchsia|gray|green|high|histogram|hl2|hlc3|hline\.style_(dotted|solid|dashed)|input\.(bool|float|integer|resolution|session|source|string|symbol)|integer|interval|isdaily|isdwm|isintraday|ismonthly|isweekly|label\.style_(arrowdown|arrowup|circle|cross|diamond|flag|labeldown|labelup|none|square|triangledown|triangleup|xcross)|lime|line\.style_(dashed|dotted|solid|arrow_both|arrow_left|arrow_right)|linebr|location\.(abovebar|absolute|belowbar|bottom|top)|low|maroon|monday|n|navy|ohlc4|olive|open|orange|period|plot\.style_(area|areabr|circles|columns|cross|histogram|line|linebr|stepline)|purple|red|resolution|saturday|scale\.(left|none|right)|session|session\.(extended|regular)|silver|size\.(auto|huge|large|normal|small|tiny)|solid|source|stepline|string|sunday|symbol|syminfo\.(mintick|pointvalue|prefix|root|session|ticker|tickerid|timezone)|teal|thursday|ticker|timeframe\.(isdaily|isdwm|isintraday|ismonthly|isweekly|multiplier|period)|timenow|tuesday|volume|wednesday|white|yellow|strategy\.(cash|closedtrades|commission\.(cash_per_contract|cash_per_order|percent)|direction\.(all|long|short)|equity|eventrades|fixed|grossloss|grossprofit|initial_capital|long|losstrades|max_contracts_held_(all|long|short)|max_drawdown|netprofit|oca\.(cancel|none|reduce)|openprofit|opentrades|percent_of_equity|position_avg_price|position_entry_name|position_size|short|wintrades)|shape\.(arrowdown|arrowup|circle|cross|diamond|flag|labeldown|labelup|square|triangledown|triangleup|xcross)|barstate\.is(first|history|last|new|realtime)|barmerge\.(gaps_on|gaps_off|lookahead_on|lookahead_off)|xloc\.bar_(index|time)|yloc\.(abovebar|belowbar|price))\b`, NameVariable, nil},
|
||||
{`(cross|dayofmonth|dayofweek|hour|minute|month|na|second|tickerid|time|tr|vwap|weekofyear|year)(\b[^\(])`, ByGroups(NameVariable, Text), nil}, // variables that can also be function
|
||||
{`(int|float|bool|color|string|label|line)(\b[^\(=.])`, ByGroups(KeywordType, Text), nil}, // types that can also be a function
|
||||
{`(var)\b`, KeywordType, nil},
|
||||
{`(true|false)\b`, KeywordConstant, nil},
|
||||
{`(and|or|not|if|else|for|to)\b`, OperatorWord, nil},
|
||||
{`@?[_a-zA-Z]\w*`, Text, nil},
|
||||
},
|
||||
},
|
||||
))
|
60
vendor/github.com/alecthomas/chroma/lexers/t/transactsql.go
generated
vendored
Normal file
60
vendor/github.com/alecthomas/chroma/lexers/t/transactsql.go
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
43
vendor/github.com/alecthomas/chroma/lexers/t/turing.go
generated
vendored
Normal file
43
vendor/github.com/alecthomas/chroma/lexers/t/turing.go
generated
vendored
Normal file
|
@ -0,0 +1,43 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Turing lexer.
|
||||
var Turing = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "Turing",
|
||||
Aliases: []string{"turing"},
|
||||
Filenames: []string{"*.turing", "*.tu"},
|
||||
MimeTypes: []string{"text/x-turing"},
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
{`\n`, Text, nil},
|
||||
{`\s+`, Text, nil},
|
||||
{`\\\n`, Text, nil},
|
||||
{`%(.*?)\n`, CommentSingle, nil},
|
||||
{`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil},
|
||||
{`(var|fcn|function|proc|procedure|process|class|end|record|type|begin|case|loop|for|const|union|monitor|module|handler)\b`, KeywordDeclaration, nil},
|
||||
{`(all|asm|assert|bind|bits|body|break|by|cheat|checked|close|condition|decreasing|def|deferred|else|elsif|exit|export|external|flexible|fork|forward|free|get|if|implement|import|include|inherit|init|invariant|label|new|objectclass|of|opaque|open|packed|pause|pervasive|post|pre|priority|put|quit|read|register|result|seek|self|set|signal|skip|tag|tell|then|timeout|to|unchecked|unqualified|wait|when|write)\b`, Keyword, nil},
|
||||
{`(true|false)\b`, KeywordConstant, nil},
|
||||
{Words(``, `\b`, `addressint`, `array`, `boolean`, `char`, `int`, `int1`, `int2`, `int4`, `int8`, `nat`, `nat1`, `nat2`, `nat4`, `nat8`, `pointer`, `real`, `real4`, `real8`, `string`, `enum`), KeywordType, nil},
|
||||
{`\d+i`, LiteralNumber, nil},
|
||||
{`\d+\.\d*([Ee][-+]\d+)?i`, LiteralNumber, nil},
|
||||
{`\.\d+([Ee][-+]\d+)?i`, LiteralNumber, nil},
|
||||
{`\d+[Ee][-+]\d+i`, LiteralNumber, nil},
|
||||
{`\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)`, LiteralNumberFloat, nil},
|
||||
{`\.\d+([eE][+\-]?\d+)?`, LiteralNumberFloat, nil},
|
||||
{`0[0-7]+`, LiteralNumberOct, nil},
|
||||
{`0[xX][0-9a-fA-F]+`, LiteralNumberHex, nil},
|
||||
{`(0|[1-9][0-9]*)`, LiteralNumberInteger, nil},
|
||||
{`(div|mod|rem|\*\*|=|<|>|>=|<=|not=|not|and|or|xor|=>|in|shl|shr|->|~|~=|~in|&|:=|\.\.|[\^+\-*/&#])`, Operator, nil},
|
||||
{`'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'`, LiteralStringChar, nil},
|
||||
{`"(\\\\|\\"|[^"])*"`, LiteralString, nil},
|
||||
{`[()\[\]{}.,:]`, Punctuation, nil},
|
||||
{`[^\W\d]\w*`, NameOther, nil},
|
||||
},
|
||||
},
|
||||
))
|
67
vendor/github.com/alecthomas/chroma/lexers/t/turtle.go
generated
vendored
Normal file
67
vendor/github.com/alecthomas/chroma/lexers/t/turtle.go
generated
vendored
Normal file
|
@ -0,0 +1,67 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Turtle lexer.
|
||||
var Turtle = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "Turtle",
|
||||
Aliases: []string{"turtle"},
|
||||
Filenames: []string{"*.ttl"},
|
||||
MimeTypes: []string{"text/turtle", "application/x-turtle"},
|
||||
NotMultiline: true,
|
||||
CaseInsensitive: true,
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
{`\s+`, TextWhitespace, nil},
|
||||
{"(@base|BASE)(\\s+)(<[^<>\"{}|^`\\\\\\x00-\\x20]*>)(\\s*)(\\.?)", ByGroups(Keyword, TextWhitespace, NameVariable, TextWhitespace, Punctuation), nil},
|
||||
{"(@prefix|PREFIX)(\\s+)((?:[a-z][\\w-]*)?\\:)(\\s+)(<[^<>\"{}|^`\\\\\\x00-\\x20]*>)(\\s*)(\\.?)", ByGroups(Keyword, TextWhitespace, NameNamespace, TextWhitespace, NameVariable, TextWhitespace, Punctuation), nil},
|
||||
{`(?<=\s)a(?=\s)`, KeywordType, nil},
|
||||
{"(<[^<>\"{}|^`\\\\\\x00-\\x20]*>)", NameVariable, nil},
|
||||
{`((?:[a-z][\w-]*)?\:)([a-z][\w-]*)`, ByGroups(NameNamespace, NameTag), nil},
|
||||
{`#[^\n]+`, Comment, nil},
|
||||
{`\b(true|false)\b`, Literal, nil},
|
||||
{`[+\-]?\d*\.\d+`, LiteralNumberFloat, nil},
|
||||
{`[+\-]?\d*(:?\.\d+)?E[+\-]?\d+`, LiteralNumberFloat, nil},
|
||||
{`[+\-]?\d+`, LiteralNumberInteger, nil},
|
||||
{`[\[\](){}.;,:^]`, Punctuation, nil},
|
||||
{`"""`, LiteralString, Push("triple-double-quoted-string")},
|
||||
{`"`, LiteralString, Push("single-double-quoted-string")},
|
||||
{`'''`, LiteralString, Push("triple-single-quoted-string")},
|
||||
{`'`, LiteralString, Push("single-single-quoted-string")},
|
||||
},
|
||||
"triple-double-quoted-string": {
|
||||
{`"""`, LiteralString, Push("end-of-string")},
|
||||
{`[^\\]+`, LiteralString, nil},
|
||||
{`\\`, LiteralString, Push("string-escape")},
|
||||
},
|
||||
"single-double-quoted-string": {
|
||||
{`"`, LiteralString, Push("end-of-string")},
|
||||
{`[^"\\\n]+`, LiteralString, nil},
|
||||
{`\\`, LiteralString, Push("string-escape")},
|
||||
},
|
||||
"triple-single-quoted-string": {
|
||||
{`'''`, LiteralString, Push("end-of-string")},
|
||||
{`[^\\]+`, LiteralString, nil},
|
||||
{`\\`, LiteralString, Push("string-escape")},
|
||||
},
|
||||
"single-single-quoted-string": {
|
||||
{`'`, LiteralString, Push("end-of-string")},
|
||||
{`[^'\\\n]+`, LiteralString, nil},
|
||||
{`\\`, LiteralString, Push("string-escape")},
|
||||
},
|
||||
"string-escape": {
|
||||
{`.`, LiteralString, Pop(1)},
|
||||
},
|
||||
"end-of-string": {
|
||||
{`(@)([a-z]+(:?-[a-z0-9]+)*)`, ByGroups(Operator, GenericEmph, GenericEmph), Pop(2)},
|
||||
{"(\\^\\^)(<[^<>\"{}|^`\\\\\\x00-\\x20]*>)", ByGroups(Operator, GenericEmph), Pop(2)},
|
||||
{`(\^\^)((?:[a-z][\w-]*)?\:)([a-z][\w-]*)`, ByGroups(Operator, GenericEmph, GenericEmph), Pop(2)},
|
||||
Default(Pop(2)),
|
||||
},
|
||||
},
|
||||
))
|
54
vendor/github.com/alecthomas/chroma/lexers/t/twig.go
generated
vendored
Normal file
54
vendor/github.com/alecthomas/chroma/lexers/t/twig.go
generated
vendored
Normal file
|
@ -0,0 +1,54 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Twig lexer.
|
||||
var Twig = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "Twig",
|
||||
Aliases: []string{"twig"},
|
||||
Filenames: []string{},
|
||||
MimeTypes: []string{"application/x-twig"},
|
||||
DotAll: true,
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
{`[^{]+`, Other, nil},
|
||||
{`\{\{`, CommentPreproc, Push("var")},
|
||||
{`\{\#.*?\#\}`, Comment, nil},
|
||||
{`(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endraw)(\s*-?)(%\})`, ByGroups(CommentPreproc, Text, Keyword, Text, CommentPreproc, Other, CommentPreproc, Text, Keyword, Text, CommentPreproc), nil},
|
||||
{`(\{%)(-?\s*)(verbatim)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endverbatim)(\s*-?)(%\})`, ByGroups(CommentPreproc, Text, Keyword, Text, CommentPreproc, Other, CommentPreproc, Text, Keyword, Text, CommentPreproc), nil},
|
||||
{`(\{%)(-?\s*)(filter)(\s+)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)`, ByGroups(CommentPreproc, Text, Keyword, Text, NameFunction), Push("tag")},
|
||||
{`(\{%)(-?\s*)([a-zA-Z_]\w*)`, ByGroups(CommentPreproc, Text, Keyword), Push("tag")},
|
||||
{`\{`, Other, nil},
|
||||
},
|
||||
"varnames": {
|
||||
{`(\|)(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)`, ByGroups(Operator, Text, NameFunction), nil},
|
||||
{`(is)(\s+)(not)?(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)`, ByGroups(Keyword, Text, Keyword, Text, NameFunction), nil},
|
||||
{`(?i)(true|false|none|null)\b`, KeywordPseudo, nil},
|
||||
{`(in|not|and|b-and|or|b-or|b-xor|isif|elseif|else|importconstant|defined|divisibleby|empty|even|iterable|odd|sameasmatches|starts\s+with|ends\s+with)\b`, Keyword, nil},
|
||||
{`(loop|block|parent)\b`, NameBuiltin, nil},
|
||||
{`(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*`, NameVariable, nil},
|
||||
{`\.(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*`, NameVariable, nil},
|
||||
{`\.[0-9]+`, LiteralNumber, nil},
|
||||
{`:?"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil},
|
||||
{`:?'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil},
|
||||
{`([{}()\[\]+\-*/,:~%]|\.\.|\?|:|\*\*|\/\/|!=|[><=]=?)`, Operator, nil},
|
||||
{`[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?`, LiteralNumber, nil},
|
||||
},
|
||||
"var": {
|
||||
{`\s+`, Text, nil},
|
||||
{`(-?)(\}\})`, ByGroups(Text, CommentPreproc), Pop(1)},
|
||||
Include("varnames"),
|
||||
},
|
||||
"tag": {
|
||||
{`\s+`, Text, nil},
|
||||
{`(-?)(%\})`, ByGroups(Text, CommentPreproc), Pop(1)},
|
||||
Include("varnames"),
|
||||
{`.`, Punctuation, nil},
|
||||
},
|
||||
},
|
||||
))
|
97
vendor/github.com/alecthomas/chroma/lexers/t/typescript.go
generated
vendored
Normal file
97
vendor/github.com/alecthomas/chroma/lexers/t/typescript.go
generated
vendored
Normal file
|
@ -0,0 +1,97 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// TypeScript lexer.
|
||||
var TypeScript = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "TypeScript",
|
||||
Aliases: []string{"ts", "tsx", "typescript"},
|
||||
Filenames: []string{"*.ts", "*.tsx"},
|
||||
MimeTypes: []string{"text/x-typescript"},
|
||||
DotAll: true,
|
||||
EnsureNL: true,
|
||||
},
|
||||
Rules{
|
||||
"commentsandwhitespace": {
|
||||
{`\s+`, Text, nil},
|
||||
{`<!--`, Comment, nil},
|
||||
{`//.*?\n`, CommentSingle, nil},
|
||||
{`/\*.*?\*/`, CommentMultiline, nil},
|
||||
},
|
||||
"slashstartsregex": {
|
||||
Include("commentsandwhitespace"),
|
||||
{`/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)`, LiteralStringRegex, Pop(1)},
|
||||
{`(?=/)`, Text, Push("#pop", "badregex")},
|
||||
Default(Pop(1)),
|
||||
},
|
||||
"badregex": {
|
||||
{`\n`, Text, Pop(1)},
|
||||
},
|
||||
"root": {
|
||||
Include("jsx"),
|
||||
{`^(?=\s|/|<!--)`, Text, Push("slashstartsregex")},
|
||||
Include("commentsandwhitespace"),
|
||||
{`\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?`, Operator, Push("slashstartsregex")},
|
||||
{`[{(\[;,]`, Punctuation, Push("slashstartsregex")},
|
||||
{`[})\].]`, Punctuation, nil},
|
||||
{`(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|this)\b`, Keyword, Push("slashstartsregex")},
|
||||
{`(var|let|with|function)\b`, KeywordDeclaration, Push("slashstartsregex")},
|
||||
{`(abstract|boolean|byte|char|class|const|debugger|double|enum|export|extends|final|float|goto|implements|import|int|interface|long|native|package|private|protected|public|short|static|super|synchronized|throws|transient|volatile)\b`, KeywordReserved, nil},
|
||||
{`(true|false|null|NaN|Infinity|undefined)\b`, KeywordConstant, nil},
|
||||
{`(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|window)\b`, NameBuiltin, nil},
|
||||
{`\b(module)(\s*)(\s*[\w?.$][\w?.$]*)(\s*)`, ByGroups(KeywordReserved, Text, NameOther, Text), Push("slashstartsregex")},
|
||||
{`\b(string|bool|number)\b`, KeywordType, nil},
|
||||
{`\b(constructor|declare|interface|as|AS)\b`, KeywordReserved, nil},
|
||||
{`(super)(\s*)(\([\w,?.$\s]+\s*\))`, ByGroups(KeywordReserved, Text), Push("slashstartsregex")},
|
||||
{`([a-zA-Z_?.$][\w?.$]*)\(\) \{`, NameOther, Push("slashstartsregex")},
|
||||
{`([\w?.$][\w?.$]*)(\s*:\s*)([\w?.$][\w?.$]*)`, ByGroups(NameOther, Text, KeywordType), nil},
|
||||
{`[$a-zA-Z_]\w*`, NameOther, nil},
|
||||
{`[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?`, LiteralNumberFloat, nil},
|
||||
{`0x[0-9a-fA-F]+`, LiteralNumberHex, nil},
|
||||
{`[0-9]+`, LiteralNumberInteger, nil},
|
||||
{`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil},
|
||||
{`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil},
|
||||
{"`", LiteralStringBacktick, Push("interp")},
|
||||
{`@\w+`, KeywordDeclaration, nil},
|
||||
},
|
||||
"interp": {
|
||||
{"`", LiteralStringBacktick, Pop(1)},
|
||||
{`\\\\`, LiteralStringBacktick, nil},
|
||||
{"\\\\`", LiteralStringBacktick, nil},
|
||||
{`\$\{`, LiteralStringInterpol, Push("interp-inside")},
|
||||
{`\$`, LiteralStringBacktick, nil},
|
||||
{"[^`\\\\$]+", LiteralStringBacktick, nil},
|
||||
},
|
||||
"interp-inside": {
|
||||
{`\}`, LiteralStringInterpol, Pop(1)},
|
||||
Include("root"),
|
||||
},
|
||||
"jsx": {
|
||||
{`(<)(/?)(>)`, ByGroups(Punctuation, Punctuation, Punctuation), nil},
|
||||
{`(<)([\w\.]+)`, ByGroups(Punctuation, NameTag), Push("tag")},
|
||||
{`(<)(/)([\w\.]*)(>)`, ByGroups(Punctuation, Punctuation, NameTag, Punctuation), nil},
|
||||
},
|
||||
"tag": {
|
||||
{`\s+`, Text, nil},
|
||||
{`([\w]+\s*)(=)(\s*)`, ByGroups(NameAttribute, Operator, Text), Push("attr")},
|
||||
{`[{}]+`, Punctuation, nil},
|
||||
{`[\w\.]+`, NameAttribute, nil},
|
||||
{`(/?)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation), Pop(1)},
|
||||
},
|
||||
"attr": {
|
||||
{`{`, Punctuation, Push("expression")},
|
||||
{`".*?"`, LiteralString, Pop(1)},
|
||||
{`'.*?'`, LiteralString, Pop(1)},
|
||||
Default(Pop(1)),
|
||||
},
|
||||
"expression": {
|
||||
{`{`, Punctuation, Push()},
|
||||
{`}`, Punctuation, Pop(1)},
|
||||
Include("root"),
|
||||
},
|
||||
},
|
||||
))
|
126
vendor/github.com/alecthomas/chroma/lexers/t/typoscript.go
generated
vendored
Normal file
126
vendor/github.com/alecthomas/chroma/lexers/t/typoscript.go
generated
vendored
Normal file
|
@ -0,0 +1,126 @@
|
|||
package t
|
||||
|
||||
import (
|
||||
. "github.com/alecthomas/chroma" // nolint
|
||||
"github.com/alecthomas/chroma/lexers/internal"
|
||||
)
|
||||
|
||||
// Typoscript lexer.
|
||||
var Typoscript = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "TypoScript",
|
||||
Aliases: []string{"typoscript"},
|
||||
Filenames: []string{"*.ts"},
|
||||
MimeTypes: []string{"text/x-typoscript"},
|
||||
DotAll: true,
|
||||
Priority: 0.1,
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
Include("comment"),
|
||||
Include("constant"),
|
||||
Include("html"),
|
||||
Include("label"),
|
||||
Include("whitespace"),
|
||||
Include("keywords"),
|
||||
Include("punctuation"),
|
||||
Include("operator"),
|
||||
Include("structure"),
|
||||
Include("literal"),
|
||||
Include("other"),
|
||||
},
|
||||
"keywords": {
|
||||
{`(\[)(?i)(browser|compatVersion|dayofmonth|dayofweek|dayofyear|device|ELSE|END|GLOBAL|globalString|globalVar|hostname|hour|IP|language|loginUser|loginuser|minute|month|page|PIDinRootline|PIDupinRootline|system|treeLevel|useragent|userFunc|usergroup|version)([^\]]*)(\])`, ByGroups(LiteralStringSymbol, NameConstant, Text, LiteralStringSymbol), nil},
|
||||
{`(?=[\w\-])(HTMLparser|HTMLparser_tags|addParams|cache|encapsLines|filelink|if|imageLinkWrap|imgResource|makelinks|numRows|numberFormat|parseFunc|replacement|round|select|split|stdWrap|strPad|tableStyle|tags|textStyle|typolink)(?![\w\-])`, NameFunction, nil},
|
||||
{`(?:(=?\s*<?\s+|^\s*))(cObj|field|config|content|constants|FEData|file|frameset|includeLibs|lib|page|plugin|register|resources|sitemap|sitetitle|styles|temp|tt_[^:.\s]*|types|xmlnews|INCLUDE_TYPOSCRIPT|_CSS_DEFAULT_STYLE|_DEFAULT_PI_VARS|_LOCAL_LANG)(?![\w\-])`, ByGroups(Operator, NameBuiltin), nil},
|
||||
{`(?=[\w\-])(CASE|CLEARGIF|COA|COA_INT|COBJ_ARRAY|COLUMNS|CONTENT|CTABLE|EDITPANEL|FILE|FILES|FLUIDTEMPLATE|FORM|HMENU|HRULER|HTML|IMAGE|IMGTEXT|IMG_RESOURCE|LOAD_REGISTER|MEDIA|MULTIMEDIA|OTABLE|PAGE|QTOBJECT|RECORDS|RESTORE_REGISTER|SEARCHRESULT|SVG|SWFOBJECT|TEMPLATE|TEXT|USER|USER_INT)(?![\w\-])`, NameClass, nil},
|
||||
{`(?=[\w\-])(ACTIFSUBRO|ACTIFSUB|ACTRO|ACT|CURIFSUBRO|CURIFSUB|CURRO|CUR|IFSUBRO|IFSUB|NO|SPC|USERDEF1RO|USERDEF1|USERDEF2RO|USERDEF2|USRRO|USR)`, NameClass, nil},
|
||||
{`(?=[\w\-])(GMENU_FOLDOUT|GMENU_LAYERS|GMENU|IMGMENUITEM|IMGMENU|JSMENUITEM|JSMENU|TMENUITEM|TMENU_LAYERS|TMENU)`, NameClass, nil},
|
||||
{`(?=[\w\-])(PHP_SCRIPT(_EXT|_INT)?)`, NameClass, nil},
|
||||
{`(?=[\w\-])(userFunc)(?![\w\-])`, NameFunction, nil},
|
||||
},
|
||||
"whitespace": {
|
||||
{`\s+`, Text, nil},
|
||||
},
|
||||
"html": {
|
||||
{`<\S[^\n>]*>`, Using(TypoScriptHTMLData), nil},
|
||||
{`&[^;\n]*;`, LiteralString, nil},
|
||||
{`(_CSS_DEFAULT_STYLE)(\s*)(\()(?s)(.*(?=\n\)))`, ByGroups(NameClass, Text, LiteralStringSymbol, Using(TypoScriptCSSData)), nil},
|
||||
},
|
||||
"literal": {
|
||||
{`0x[0-9A-Fa-f]+t?`, LiteralNumberHex, nil},
|
||||
{`[0-9]+`, LiteralNumberInteger, nil},
|
||||
{`(###\w+###)`, NameConstant, nil},
|
||||
},
|
||||
"label": {
|
||||
{`(EXT|FILE|LLL):[^}\n"]*`, LiteralString, nil},
|
||||
{`(?![^\w\-])([\w\-]+(?:/[\w\-]+)+/?)(\S*\n)`, ByGroups(LiteralString, LiteralString), nil},
|
||||
},
|
||||
"punctuation": {
|
||||
{`[,.]`, Punctuation, nil},
|
||||
},
|
||||
"operator": {
|
||||
{`[<>,:=.*%+|]`, Operator, nil},
|
||||
},
|
||||
"structure": {
|
||||
{`[{}()\[\]\\]`, LiteralStringSymbol, nil},
|
||||
},
|
||||
"constant": {
|
||||
{`(\{)(\$)((?:[\w\-]+\.)*)([\w\-]+)(\})`, ByGroups(LiteralStringSymbol, Operator, NameConstant, NameConstant, LiteralStringSymbol), nil},
|
||||
{`(\{)([\w\-]+)(\s*:\s*)([\w\-]+)(\})`, ByGroups(LiteralStringSymbol, NameConstant, Operator, NameConstant, LiteralStringSymbol), nil},
|
||||
{`(#[a-fA-F0-9]{6}\b|#[a-fA-F0-9]{3}\b)`, LiteralStringChar, nil},
|
||||
},
|
||||
"comment": {
|
||||
{`(?<!(#|\'|"))(?:#(?!(?:[a-fA-F0-9]{6}|[a-fA-F0-9]{3}))[^\n#]+|//[^\n]*)`, Comment, nil},
|
||||
{`/\*(?:(?!\*/).)*\*/`, Comment, nil},
|
||||
{`(\s*#\s*\n)`, Comment, nil},
|
||||
},
|
||||
"other": {
|
||||
{`[\w"\-!/&;]+`, Text, nil},
|
||||
},
|
||||
},
|
||||
))
|
||||
|
||||
// TypoScriptCSSData lexer.
|
||||
var TypoScriptCSSData = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "TypoScriptCssData",
|
||||
Aliases: []string{"typoscriptcssdata"},
|
||||
Filenames: []string{},
|
||||
MimeTypes: []string{},
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
{`(.*)(###\w+###)(.*)`, ByGroups(LiteralString, NameConstant, LiteralString), nil},
|
||||
{`(\{)(\$)((?:[\w\-]+\.)*)([\w\-]+)(\})`, ByGroups(LiteralStringSymbol, Operator, NameConstant, NameConstant, LiteralStringSymbol), nil},
|
||||
{`(.*)(\{)([\w\-]+)(\s*:\s*)([\w\-]+)(\})(.*)`, ByGroups(LiteralString, LiteralStringSymbol, NameConstant, Operator, NameConstant, LiteralStringSymbol, LiteralString), nil},
|
||||
{`\s+`, Text, nil},
|
||||
{`/\*(?:(?!\*/).)*\*/`, Comment, nil},
|
||||
{`(?<!(#|\'|"))(?:#(?!(?:[a-fA-F0-9]{6}|[a-fA-F0-9]{3}))[^\n#]+|//[^\n]*)`, Comment, nil},
|
||||
{`[<>,:=.*%+|]`, LiteralString, nil},
|
||||
{`[\w"\-!/&;(){}]+`, LiteralString, nil},
|
||||
},
|
||||
},
|
||||
))
|
||||
|
||||
// TypoScriptHTMLData lexer.
|
||||
var TypoScriptHTMLData = internal.Register(MustNewLexer(
|
||||
&Config{
|
||||
Name: "TypoScriptHtmlData",
|
||||
Aliases: []string{"typoscripthtmldata"},
|
||||
Filenames: []string{},
|
||||
MimeTypes: []string{},
|
||||
},
|
||||
Rules{
|
||||
"root": {
|
||||
{`(INCLUDE_TYPOSCRIPT)`, NameClass, nil},
|
||||
{`(EXT|FILE|LLL):[^}\n"]*`, LiteralString, nil},
|
||||
{`(.*)(###\w+###)(.*)`, ByGroups(LiteralString, NameConstant, LiteralString), nil},
|
||||
{`(\{)(\$)((?:[\w\-]+\.)*)([\w\-]+)(\})`, ByGroups(LiteralStringSymbol, Operator, NameConstant, NameConstant, LiteralStringSymbol), nil},
|
||||
{`(.*)(\{)([\w\-]+)(\s*:\s*)([\w\-]+)(\})(.*)`, ByGroups(LiteralString, LiteralStringSymbol, NameConstant, Operator, NameConstant, LiteralStringSymbol, LiteralString), nil},
|
||||
{`\s+`, Text, nil},
|
||||
{`[<>,:=.*%+|]`, LiteralString, nil},
|
||||
{`[\w"\-!/&;(){}#]+`, LiteralString, nil},
|
||||
},
|
||||
},
|
||||
))
|
Loading…
Add table
Add a link
Reference in a new issue