update go modules, fix Apple auth redirect

Previously the redirect after successful authentication didn't work.
This commit is contained in:
Dmitry Verkhoturov
2023-04-02 03:47:35 -05:00
committed by Umputun
parent a03c002df4
commit 1b90604b2d
367 changed files with 29158 additions and 11931 deletions
@@ -17,3 +17,4 @@
_models/
_examples/
*.min.*
+1
View File
@@ -48,6 +48,7 @@ linters:
- govet
- nosnakecase
- testableexamples
- musttag
linters-settings:
govet:
+5 -1
View File
@@ -1,6 +1,8 @@
.PHONY: chromad upload all
VERSION ?= $(shell git describe --tags --dirty --always)
export GOOS ?= linux
export GOARCH ?= amd64
all: README.md tokentype_string.go
@@ -12,7 +14,9 @@ tokentype_string.go: types.go
chromad:
rm -f chromad
(export CGOENABLED=0 GOOS=linux GOARCH=amd64; cd ./cmd/chromad && go build -ldflags="-X 'main.version=$(VERSION)'" -o ../../chromad .)
esbuild --bundle cmd/chromad/static/index.js --minify --outfile=cmd/chromad/static/index.min.js
esbuild --bundle cmd/chromad/static/index.css --minify --outfile=cmd/chromad/static/index.min.css
(export CGOENABLED=0 ; cd ./cmd/chromad && go build -ldflags="-X 'main.version=$(VERSION)'" -o ../../chromad .)
upload: chromad
scp chromad root@swapoff.org: && \
+16 -1
View File
@@ -27,7 +27,8 @@ translators for Pygments lexers and styles.
2. [Formatters](#formatters)
3. [Styles](#styles)
6. [Command-line interface](#command-line-interface)
7. [What's missing compared to Pygments?](#whats-missing-compared-to-pygments)
7. [Testing lexers](#testing-lexers)
8. [What's missing compared to Pygments?](#whats-missing-compared-to-pygments)
<!-- /TOC -->
@@ -277,6 +278,20 @@ Debian and derivatives](https://manpages.debian.org/lesspipe#USER_DEFINED_FILTER
for that setup the `chroma` executable can be just symlinked to `~/.lessfilter`.
<a id="markdown-whats-missing-compared-to-pygments" name="whats-missing-compared-to-pygments"></a>
<a id="markdown-testing-lexers" name="testing-lexers"></a>
## Testing lexers
If you edit some lexers and want to test it, open a shell in `cmd/chromad` and run:
```shell
go run .
```
A Link will be printed. Open it in your Browser. Now you can test on the Playground with your local changes.
If you want to run the tests and the lexers, open a shell in the root directory and run:
```shell
go test ./lexers
```
## What's missing compared to Pygments?
- Quite a few lexers, for various reasons (pull-requests welcome):
+3 -3
View File
@@ -171,10 +171,10 @@ var (
defaultPreWrapper = preWrapper{
start: func(code bool, styleAttr string) string {
if code {
return fmt.Sprintf(`<pre tabindex="0"%s><code>`, styleAttr)
return fmt.Sprintf(`<pre%s><code>`, styleAttr)
}
return fmt.Sprintf(`<pre tabindex="0"%s>`, styleAttr)
return fmt.Sprintf(`<pre%s>`, styleAttr)
},
end: func(code bool) string {
if code {
@@ -513,7 +513,7 @@ func (f *Formatter) styleToCSS(style *chroma.Style) map[chroma.TokenType]string
if f.wrapLongLines {
classes[chroma.PreWrapper] += `white-space: pre-wrap; word-break: break-word;`
}
lineNumbersStyle := `white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;`
lineNumbersStyle := `white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;`
// All rules begin with default rules followed by user provided rules
classes[chroma.Line] = `display: flex;` + classes[chroma.Line]
classes[chroma.LineNumbers] = lineNumbersStyle + classes[chroma.LineNumbers]
-26
View File
@@ -1,26 +0,0 @@
package lexers
import (
. "github.com/alecthomas/chroma/v2" // nolint
)
// BashSession lexer.
var BashSession = Register(MustNewLexer(
&Config{
Name: "BashSession",
Aliases: []string{"bash-session", "console", "shell-session"},
Filenames: []string{".sh-session"},
MimeTypes: []string{"text/x-sh"},
EnsureNL: true,
},
bashsessionRules,
))
func bashsessionRules() Rules {
return Rules{
"root": {
{`^((?:\[[^]]+@[^]]+\]\s?)?[#$%>])(\s*)(.*\n?)`, ByGroups(GenericPrompt, Text, Using("Bash")), nil},
{`^.+\n?`, GenericOutput, nil},
},
}
}
@@ -0,0 +1,25 @@
<lexer>
<config>
<name>BashSession</name>
<alias>bash-session</alias>
<alias>console</alias>
<alias>shell-session</alias>
<filename>*.sh-session</filename>
<mime_type>text/x-sh</mime_type>
<ensure_nl>true</ensure_nl>
</config>
<rules>
<state name="root">
<rule pattern="^((?:\[[^]]+@[^]]+\]\s?)?[#$%>])(\s*)(.*\n?)">
<bygroups>
<token type="GenericPrompt"/>
<token type="Text"/>
<using lexer="bash"/>
</bygroups>
</rule>
<rule pattern="^.+\n?">
<token type="GenericOutput"/>
</rule>
</state>
</rules>
</lexer>
@@ -38,7 +38,7 @@
<rule pattern="#.*?\n">
<token type="Comment"/>
</rule>
<rule pattern="@.*?\n">
<rule pattern="^@.*?\n">
<token type="CommentPreproc"/>
</rule>
<rule pattern="(body)(\s+)(\S+)(\s+)(control)">
@@ -78,6 +78,12 @@
<token type="Text"/>
</bygroups>
</rule>
<rule pattern="([\w.!&amp;|()&#34;&#36;]+)(::)">
<bygroups>
<token type="NameClass"/>
<token type="Punctuation"/>
</bygroups>
</rule>
<rule pattern="&#34;">
<token type="LiteralString"/>
<push state="doublequotestring"/>
@@ -96,12 +102,6 @@
<token type="Punctuation"/>
</bygroups>
</rule>
<rule pattern="([\w.!&amp;|()]+)(::)">
<bygroups>
<token type="NameClass"/>
<token type="Punctuation"/>
</bygroups>
</rule>
<rule pattern="(\w+)(:)">
<bygroups>
<token type="KeywordDeclaration"/>
@@ -111,6 +111,9 @@
<rule pattern="@[{(][^)}]+[})]">
<token type="NameVariable"/>
</rule>
<rule pattern="\$[(][^)]+[)]">
<token type="NameVariable"/>
</rule>
<rule pattern="[(){},;]">
<token type="Punctuation"/>
</rule>
@@ -14,6 +14,18 @@
<rule pattern=" .*\n">
<token type="Text"/>
</rule>
<rule pattern="\d+(,\d+)?(a|c|d)\d+(,\d+)?\n">
<token type="GenericSubheading"/>
</rule>
<rule pattern="---\n">
<token type="GenericStrong"/>
</rule>
<rule pattern="&lt; .*\n">
<token type="GenericDeleted"/>
</rule>
<rule pattern="&gt; .*\n">
<token type="GenericInserted"/>
</rule>
<rule pattern="\+.*\n">
<token type="GenericInserted"/>
</rule>
+1 -1
View File
@@ -56,7 +56,7 @@
<rule pattern="(true|false|null)\b">
<token type="KeywordConstant"/>
</rule>
<rule pattern="(class|interface)(\s+)">
<rule pattern="(class|interface|record)(\s+)">
<bygroups>
<token type="KeywordDeclaration"/>
<token type="Text"/>
@@ -0,0 +1,252 @@
<lexer>
<config>
<name>HolyC</name>
<alias>holyc</alias>
<filename>*.HC</filename>
<filename>*.hc</filename>
<filename>*.HH</filename>
<filename>*.hh</filename>
<filename>*.hc.z</filename>
<filename>*.HC.Z</filename>
<mime_type>text/x-chdr</mime_type>
<mime_type>text/x-csrc</mime_type>
<mime_type>image/x-xbitmap</mime_type>
<mime_type>image/x-xpixmap</mime_type>
<ensure_nl>true</ensure_nl>
</config>
<rules>
<state name="statement">
<rule>
<include state="whitespace"/>
</rule>
<rule>
<include state="statements"/>
</rule>
<rule pattern="[{}]">
<token type="Punctuation"/>
</rule>
<rule pattern=";">
<token type="Punctuation"/>
<pop depth="1"/>
</rule>
</state>
<state name="function">
<rule>
<include state="whitespace"/>
</rule>
<rule>
<include state="statements"/>
</rule>
<rule pattern=";">
<token type="Punctuation"/>
</rule>
<rule pattern="\{">
<token type="Punctuation"/>
<push/>
</rule>
<rule pattern="\}">
<token type="Punctuation"/>
<pop depth="1"/>
</rule>
</state>
<state name="string">
<rule pattern="&#34;">
<token type="LiteralString"/>
<pop depth="1"/>
</rule>
<rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})">
<token type="LiteralStringEscape"/>
</rule>
<rule pattern="[^\\&#34;\n]+">
<token type="LiteralString"/>
</rule>
<rule pattern="\\\n">
<token type="LiteralString"/>
</rule>
<rule pattern="\\">
<token type="LiteralString"/>
</rule>
</state>
<state name="macro">
<rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)">
<bygroups>
<token type="CommentPreproc"/>
<token type="Text"/>
<token type="CommentPreprocFile"/>
</bygroups>
</rule>
<rule pattern="[^/\n]+">
<token type="CommentPreproc"/>
</rule>
<rule pattern="/[*](.|\n)*?[*]/">
<token type="CommentMultiline"/>
</rule>
<rule pattern="//.*?\n">
<token type="CommentSingle"/>
<pop depth="1"/>
</rule>
<rule pattern="/">
<token type="CommentPreproc"/>
</rule>
<rule pattern="(?&lt;=\\)\n">
<token type="CommentPreproc"/>
</rule>
<rule pattern="\n">
<token type="CommentPreproc"/>
<pop depth="1"/>
</rule>
</state>
<state name="if0">
<rule pattern="^\s*#if.*?(?&lt;!\\)\n">
<token type="CommentPreproc"/>
<push/>
</rule>
<rule pattern="^\s*#el(?:se|if).*\n">
<token type="CommentPreproc"/>
<pop depth="1"/>
</rule>
<rule pattern="^\s*#endif.*?(?&lt;!\\)\n">
<token type="CommentPreproc"/>
<pop depth="1"/>
</rule>
<rule pattern=".*?\n">
<token type="Comment"/>
</rule>
</state>
<state name="whitespace">
<rule pattern="^#if\s+0">
<token type="CommentPreproc"/>
<push state="if0"/>
</rule>
<rule pattern="^#">
<token type="CommentPreproc"/>
<push state="macro"/>
</rule>
<rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)">
<bygroups>
<usingself state="root"/>
<token type="CommentPreproc"/>
</bygroups>
<push state="if0"/>
</rule>
<rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)">
<bygroups>
<usingself state="root"/>
<token type="CommentPreproc"/>
</bygroups>
<push state="macro"/>
</rule>
<rule pattern="\n">
<token type="Text"/>
</rule>
<rule pattern="\s+">
<token type="Text"/>
</rule>
<rule pattern="\\\n">
<token type="Text"/>
</rule>
<rule pattern="//(\n|[\w\W]*?[^\\]\n)">
<token type="CommentSingle"/>
</rule>
<rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
<token type="CommentMultiline"/>
</rule>
<rule pattern="/(\\\n)?[*][\w\W]*">
<token type="CommentMultiline"/>
</rule>
</state>
<state name="statements">
<rule pattern="(L?)(&#34;)">
<bygroups>
<token type="LiteralStringAffix"/>
<token type="LiteralString"/>
</bygroups>
<push state="string"/>
</rule>
<rule pattern="(L?)(&#39;)(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])(&#39;)">
<bygroups>
<token type="LiteralStringAffix"/>
<token type="LiteralStringChar"/>
<token type="LiteralStringChar"/>
<token type="LiteralStringChar"/>
</bygroups>
</rule>
<rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
<token type="LiteralNumberFloat"/>
</rule>
<rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
<token type="LiteralNumberFloat"/>
</rule>
<rule pattern="0x[0-9a-fA-F]+[LlUu]*">
<token type="LiteralNumberHex"/>
</rule>
<rule pattern="0[0-7]+[LlUu]*">
<token type="LiteralNumberOct"/>
</rule>
<rule pattern="\d+[LlUu]*">
<token type="LiteralNumberInteger"/>
</rule>
<rule pattern="\*/">
<token type="Error"/>
</rule>
<rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
<token type="Operator"/>
</rule>
<rule pattern="[()\[\],.]">
<token type="Punctuation"/>
</rule>
<rule pattern="(break|case|continue|default|do|else|for|goto|if|return|switch|while|throw|try|catch|extern|MOV|CALL|PUSH|LEAVE|RET|SUB|SHR|ADD|RETF|CMP|JNE|BTS|INT|XOR|JC|JZ|LOOP|POP|TEST|SHL|ADC|SBB|JMP|INC)\b">
<token type="Keyword"/>
</rule>
<rule pattern="(U0|I8|U8|I16|U16|I32|U32|I64|U64|F64|Bool|class|union|DU8|DU16|DU32|DU64|RAX|RCX|RDX|RBX|RSP|RBP|RSI|RDI|EAX|ECX|EDX|EBX|ESP|EBP|ESI|EDI|AX|CX|DX|BX|SP|BP|SI|DI|SS|CS|DS|ES|FS|GS|CH|asm|const|extern|register|restrict|static|volatile|inline|_extern|_import|IMPORT|public)\b">
<token type="KeywordType"/>
</rule>
<rule pattern="__()\b">
<token type="KeywordReserved"/>
</rule>
<rule pattern="(NULL|TRUE|FALSE|ON|OFF)\b">
<token type="NameBuiltin"/>
</rule>
<rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)">
<bygroups>
<token type="NameLabel"/>
<token type="Text"/>
<token type="Punctuation"/>
</bygroups>
</rule>
<rule pattern="\b[A-Za-z_]\w*(?=\s*\()">
<token type="NameFunction"/>
</rule>
<rule pattern="[a-zA-Z_]\w*">
<token type="Name"/>
</rule>
</state>
<state name="root">
<rule>
<include state="whitespace"/>
</rule>
<rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)">
<bygroups>
<usingself state="root"/>
<token type="NameFunction"/>
<usingself state="root"/>
<usingself state="root"/>
<token type="Punctuation"/>
</bygroups>
<push state="function"/>
</rule>
<rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)">
<bygroups>
<usingself state="root"/>
<token type="NameFunction"/>
<usingself state="root"/>
<usingself state="root"/>
<token type="Punctuation"/>
</bygroups>
</rule>
<rule>
<push state="statement"/>
</rule>
</state>
</rules>
</lexer>
@@ -0,0 +1,143 @@
<lexer>
<config>
<name>Natural</name>
<alias>natural</alias>
<filename>*.NSN</filename>
<filename>*.NSP</filename>
<filename>*.NSS</filename>
<filename>*.NSH</filename>
<filename>*.NSG</filename>
<filename>*.NSL</filename>
<filename>*.NSA</filename>
<filename>*.NSM</filename>
<filename>*.NSC</filename>
<filename>*.NS7</filename>
<mime_type>text/x-natural</mime_type>
<case_insensitive>true</case_insensitive>
</config>
<rules>
<state name="common">
<rule pattern="\s+">
<token type="Text"/>
</rule>
<rule pattern="^\*.*$">
<token type="CommentSingle"/>
</rule>
<rule pattern="/\*.*$">
<token type="CommentSingle"/>
</rule>
</state>
<state name="variable-names">
<rule pattern="[#+]?[\w\-\d]+">
<token type="NameVariable"/>
</rule>
<rule pattern="\([a-zA-z]\d*\)">
<token type="Other"/>
</rule>
</state>
<state name="root">
<rule>
<include state="common"/>
</rule>
<rule pattern="(?:END-DEFINE|END-IF|END-FOR|END-SUBROUTINE|END-ERROR|END|IGNORE)\b">
<token type="Keyword"/>
</rule>
<rule pattern="(?:INIT|CONST)\s*&lt;\b">
<token type="Keyword"/>
</rule>
<rule pattern="(FORM)(\s+)(\w+)">
<bygroups>
<token type="Keyword"/>
<token type="Text"/>
<token type="NameFunction"/>
</bygroups>
</rule>
<rule pattern="(DEFINE)(\s+)(SUBROUTINE)(\s+)([#+]?[\w\-\d]+)">
<bygroups>
<token type="Keyword"/>
<token type="Text"/>
<token type="Keyword"/>
<token type="Text"/>
<token type="NameFunction"/>
</bygroups>
</rule>
<rule pattern="(PERFORM)(\s+)([#+]?[\w\-\d]+)">
<bygroups>
<token type="Keyword"/>
<token type="Text"/>
<token type="NameFunction"/>
</bygroups>
</rule>
<rule pattern="(METHOD)(\s+)([\w~]+)">
<bygroups>
<token type="Keyword"/>
<token type="Text"/>
<token type="NameFunction"/>
</bygroups>
</rule>
<rule pattern="(\s+)([\w\-]+)([=\-]&gt;)([\w\-~]+)">
<bygroups>
<token type="Text"/>
<token type="NameVariable"/>
<token type="Operator"/>
<token type="NameFunction"/>
</bygroups>
</rule>
<rule pattern="(?&lt;=(=|-)&gt;)([\w\-~]+)(?=\()">
<token type="NameFunction"/>
</rule>
<rule pattern="(TEXT)(-)(\d{3})">
<bygroups>
<token type="Keyword"/>
<token type="Punctuation"/>
<token type="LiteralNumberInteger"/>
</bygroups>
</rule>
<rule pattern="(TEXT)(-)(\w{3})">
<bygroups>
<token type="Keyword"/>
<token type="Punctuation"/>
<token type="NameVariable"/>
</bygroups>
</rule>
<rule pattern="(?i)\b(?&lt;!-)(?&lt;!#)(ENTIRE|BY|NAME|ARRAY|SPECIFIED|VIEW|MODULE|FUNCTION|RETURNS|AND|NUMERIC|OPTIONAL|END-PARSE|TRUE|END-RESULT|LEAVING|NOT|CONDITION|NUMBER|NO|EXP|FULL|REPLACE|INSERT|DOEND|LOG|ABS|ANY|REPEAT|SET|DLOGOFF|DOWNLOAD|BREAK|VALUES|DIVIDE|COMPRESS|UPDATE|SORTKEY|OR|END-FIND|END-ENDPAGE|REDUCE|IGNORE|MIN|WASTE|END-DEFINE|SUBSTR|END|FIND|ADD|INVESTIGATE|DNATIVE|CONST|COS|ENDHOC|SGN|COPY|REDEFINE|DEFINE|MULTIPLY|ASSIGN|LE|VALUE|COMPOSE|FALSE|POS|CALL|TAN|ERROR|CLOSE|PARSE|LT|WITH_CTE|END-SORT|EJECT|RESET|SHOW|LOCAL|PERFORM|TERMINATE|VAL|BACKOUT|END-LOOP|REJECT|SUM|CREATE|SORT|RETURN|AT|SIN|SETTIME|INT|NE|GLOBAL|END-SELECT|ELSE|DELETE|TOP|INCLUDE|END-ENDDATA|LOOP|OLD|SUSPEND|SKIP|SQRT|RULEVAR|NMIN|AVER|PROCESS|SELECT|MAP|USING|END-HISTOGRAM|MAX|NEWPAGE|ON|OFF|KEY|NAMED|CONTROL|PF1|PF2|PF3|PF4|PF5|PF6|PF7|PF8|PF9|INITIAL|WRITE|STORE|FETCH|ATN|RET|END-WORK|RESTORE|GET|LIMIT|END-ERROR|SEND|OPEN|ESCAPE|COMPUTE|COUNT|TRANSFER|RELEASE|DO|DYNAMIC|ROLLBACK|END-READ|DISPLAY|UPLOAD|END-DATA|NULL-HANDLE|NCOUNT|RESIZE|END-PROCESS|REQUEST|READ|SEPARATE|EQ|INPUT|DATA|END-START|STACK|REINPUT|INCDIC|INCCONT|END-IF|WHEN|END-BEFORE|WHILE|END-ENDFILE|END-TOPPAGE|INCDIR|PARAMETER|OBTAIN|CALLDBPROC|END-BROWSE|MOVE|SUBTRACT|DLOGON|EXAMINE|SUBSTRING|BEFORE|STOP|RUN|END-BREAK|EXPORT|END-SUBROUTINE|FOR|GE|PRINT|BROWSE|IMPORT|EXPAND|ALL|PASSW|FORMAT|GT|END-NOREC|END-DECIDE|END-FOR|CALLNAT|END-ALL|OPTIONS|RETRY|NONE|INCMAC|END-FILE|DECIDE|INIT|HISTOGRAM|NAVER|START|ACCEPT|COMMIT|TOTAL|IF|FRAC|END-REPEAT|UNTIL|TO|INTO|WITH|DELIMITER|FIRST|OF|INTO|SUBROUTINE|GIVING|POSITION)\b(?!-)">
<token type="Keyword"/>
</rule>
<rule pattern="[0-9]+">
<token type="LiteralNumberInteger"/>
</rule>
<rule pattern="(?&lt;=(\s|.))(AND|OR|NOT|EQUAL|NE|EQ|GT|GE|LT|LE)\b">
<token type="OperatorWord"/>
</rule>
<rule>
<include state="variable-names"/>
</rule>
<rule pattern="[?*&lt;&gt;=\-+&amp;]">
<token type="Operator"/>
</rule>
<rule pattern="(?:(ESCAPE)(\s+)(MODULE|ROUTINE|BOTTOM|TOP))">
<bygroups>
<token type="Keyword"/>
<token type="Text"/>
<token type="Keyword"/>
</bygroups>
</rule>
<rule pattern="&#39;(&#39;&#39;|[^&#39;])*&#39;">
<token type="LiteralStringSingle"/>
</rule>
<rule pattern="`([^`])*`">
<token type="LiteralStringSingle"/>
</rule>
<rule pattern="([|}])([^{}|]*?)([|{])">
<bygroups>
<token type="Punctuation"/>
<token type="LiteralStringSingle"/>
<token type="Punctuation"/>
</bygroups>
</rule>
<rule pattern="[/;:()\[\],.]">
<token type="Punctuation"/>
</rule>
</state>
</rules>
</lexer>
+4 -4
View File
@@ -44,10 +44,10 @@
</rule>
</state>
<state name="int-suffix">
<rule pattern="\&#39;i(32|64)">
<rule pattern="\&#39;(i|u)(32|64)">
<token type="LiteralNumberIntegerLong"/>
</rule>
<rule pattern="\&#39;i(8|16)">
<rule pattern="\&#39;(u|(i|u)(8|16))">
<token type="LiteralNumberInteger"/>
</rule>
<rule>
@@ -55,7 +55,7 @@
</rule>
</state>
<state name="float-suffix">
<rule pattern="\&#39;f(32|64)">
<rule pattern="\&#39;(f|d|f(32|64))">
<token type="LiteralNumberFloat"/>
</rule>
<rule>
@@ -176,7 +176,7 @@
<rule pattern="\b((?![_\d])\w)(((?!_)\w)|(_(?!_)\w))*">
<token type="Name"/>
</rule>
<rule pattern="[0-9][0-9_]*(?=([e.]|\&#39;f(32|64)))">
<rule pattern="[0-9][0-9_]*(?=([e.]|\&#39;(f|d|f(32|64))))">
<token type="LiteralNumberFloat"/>
<push state="float-suffix" state="float-number"/>
</rule>
+2 -1
View File
@@ -12,6 +12,7 @@
<case_insensitive>true</case_insensitive>
<dot_all>true</dot_all>
<ensure_nl>true</ensure_nl>
<priority>3</priority>
</config>
<rules>
<state name="magicfuncs">
@@ -208,4 +209,4 @@
</rule>
</state>
</rules>
</lexer>
</lexer>
+1 -1
View File
@@ -206,7 +206,7 @@
</rule>
</state>
<state name="keywords">
<rule pattern="(yield from|nonlocal|continue|finally|except|lambda|assert|global|return|raise|yield|while|break|await|async|pass|else|elif|with|try|for|del|as|if)\b">
<rule pattern="(yield from|nonlocal|continue|finally|except|lambda|assert|global|return|raise|yield|while|break|await|async|pass|else|elif|with|try|for|del|as|if|match|case)\b">
<token type="Keyword"/>
</rule>
<rule pattern="(False|True|None)\b">
+65 -19
View File
@@ -23,9 +23,6 @@
</rule>
</state>
<state name="lifetime">
<rule pattern="(static|_)">
<token type="NameBuiltin"/>
</rule>
<rule pattern="[a-zA-Z_]+\w*">
<token type="NameAttribute"/>
</rule>
@@ -108,12 +105,30 @@
<pop depth="1"/>
</rule>
</state>
<state name="formatted_string">
<rule pattern="&#34;">
<token type="LiteralString"/>
<pop depth="1"/>
</rule>
<rule pattern="\\[&#39;&#34;\\nrt]|\\(?=\n)|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}|\{\{|\}\}">
<token type="LiteralStringEscape"/>
</rule>
<rule pattern="\{[^}]*\}">
<token type="LiteralStringInterpol"/>
</rule>
<rule pattern="[^\\&#34;\{\}]+">
<token type="LiteralString"/>
</rule>
<rule pattern="\\">
<token type="LiteralString"/>
</rule>
</state>
<state name="string">
<rule pattern="&#34;">
<token type="LiteralString"/>
<pop depth="1"/>
</rule>
<rule pattern="\\[&#39;&#34;\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}">
<rule pattern="\\[&#39;&#34;\\nrt]|\\(?=\n)|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}">
<token type="LiteralStringEscape"/>
</rule>
<rule pattern="[^\\&#34;]+">
@@ -171,11 +186,9 @@
<token type="CommentMultiline"/>
<push state="comment"/>
</rule>
<rule pattern="r#*&#34;(?:\\.|[^\\;])*&#34;#*">
<token type="LiteralString"/>
</rule>
<rule pattern="&#34;(?:\\.|[^\\&#34;])*&#34;">
<rule pattern="&#34;">
<token type="LiteralString"/>
<push state="string"/>
</rule>
<rule pattern="\$([a-zA-Z_]\w*|\(,?|\),?|,?)">
<token type="CommentPreproc"/>
@@ -223,9 +236,6 @@
<rule pattern="(DoubleEndedIterator|ExactSizeIterator|IntoIterator|PartialOrd|PartialEq|ToString|Iterator|ToOwned|Default|Result|String|FnOnce|Extend|Option|FnMut|Unpin|Sized|AsRef|AsMut|Clone|None|From|Into|Sync|drop|Send|Drop|Copy|Some|Ord|Err|Box|Vec|Eq|Ok|Fn)\b">
<token type="NameBuiltin"/>
</rule>
<rule pattern="(is_powerpc64_feature_detected|is_aarch64_feature_detected|is_powerpc_feature_detected|is_mips64_feature_detected|is_mips_feature_detected|is_x86_feature_detected|is_arm_feature_detected|debug_assert_ne|debug_assert_eq|format_args_nl|concat_idents|unimplemented|include_bytes|compile_error|debug_assert|thread_local|trace_macros|macro_rules|format_args|module_path|unreachable|include_str|option_env|global_asm|log_syntax|stringify|assert_ne|assert_eq|llvm_asm|eprintln|include|matches|println|writeln|format|column|assert|concat|eprint|write|panic|print|file|todo|line|env|dbg|vec|cfg|asm)!">
<token type="NameFunctionMagic"/>
</rule>
<rule pattern="::\b">
<token type="Text"/>
</rule>
@@ -243,8 +253,11 @@
<rule pattern="&#39;(\\[&#39;&#34;\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)&#39;">
<token type="LiteralStringChar"/>
</rule>
<rule pattern="b&#39;(\\[&#39;&#34;\\nrt]|\\x[0-9a-fA-F]{2}|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)&#39;">
<token type="LiteralStringChar"/>
<rule pattern="(b)(&#39;(?:\\[&#39;&#34;\\nrt]|\\x[0-9a-fA-F]{2}|\\0|.)&#39;)">
<bygroups>
<token type="LiteralStringAffix"/>
<token type="LiteralStringChar"/>
</bygroups>
</rule>
<rule pattern="0b[01_]+">
<token type="LiteralNumberBin"/>
@@ -266,15 +279,25 @@
<token type="LiteralNumberInteger"/>
<push state="number_lit"/>
</rule>
<rule pattern="b&#34;">
<token type="LiteralString"/>
<rule pattern="(b)(&#34;)">
<bygroups>
<token type="LiteralStringAffix"/>
<token type="LiteralString"/>
</bygroups>
<push state="bytestring"/>
</rule>
<rule pattern="(?s)b?r(#*)&#34;.*?&#34;\1">
<token type="LiteralString"/>
<rule pattern="(?s)(b?r)(#*)(&#34;.*?&#34;\2)">
<bygroups>
<token type="LiteralStringAffix"/>
<token type="LiteralString"/>
<token type="LiteralString"/>
</bygroups>
</rule>
<rule pattern="&#39;(static|_)">
<token type="NameBuiltin"/>
</rule>
<rule pattern="&#39;">
<token type="Operator"/>
<token type="NameAttribute"/>
<push state="lifetime"/>
</rule>
<rule pattern="\.\.=?">
@@ -286,6 +309,26 @@
<rule pattern="[+\-*/%&amp;|&lt;&gt;^!~@=:?]">
<token type="Operator"/>
</rule>
<rule pattern="\b(r#)?_?([A-Z][A-Z0-9_]*){2,}\b">
<token type="NameConstant"/>
</rule>
<rule pattern="((?:e?print(?:ln)?|format(?:_args)?|panic|todo|un(?:reachable|implemented))!)(\s*)(\()(\s*)(&#34;)">
<bygroups>
<token type="NameFunctionMagic"/>
<token type="TextWhitespace"/>
<token type="Punctuation"/>
<token type="TextWhitespace"/>
<token type="LiteralString"/>
</bygroups>
<push state="formatted_string"/>
</rule>
<rule pattern="([a-zA-Z_]\w*!)(\s*)(\(|\[|\{)">
<bygroups>
<token type="NameFunctionMagic"/>
<token type="TextWhitespace"/>
<token type="Punctuation"/>
</bygroups>
</rule>
<rule pattern="(r#)?[a-zA-Z_]\w*">
<token type="Name"/>
</rule>
@@ -307,8 +350,11 @@
<rule pattern="&amp;">
<token type="KeywordPseudo"/>
</rule>
<rule pattern="&#39;(static|_)">
<token type="NameBuiltin"/>
</rule>
<rule pattern="&#39;">
<token type="Operator"/>
<token type="NameAttribute"/>
<push state="lifetime"/>
</rule>
<rule pattern="(DoubleEndedIterator|ExactSizeIterator|IntoIterator|PartialOrd|PartialEq|ToString|Iterator|ToOwned|Default|Result|String|FnOnce|Extend|Option|FnMut|Unpin|Sized|AsRef|AsMut|Clone|None|From|Into|Sync|drop|Send|Drop|Copy|Some|Ord|Err|Box|Vec|Eq|Ok|Fn)\b">
+1 -1
View File
@@ -49,7 +49,7 @@
</rule>
</state>
<state name="value">
<rule pattern="([&gt;|](?:[+-])?)(\n(^ {1,})(?:.*\n*(?:^\3 *).*)*)">
<rule pattern="([&gt;|](?:[+-])?)(\n(^ {1,})(?:(?:.*\n*(?:^\3 *).*)+|.*))">
<bygroups>
<token type="Punctuation"/>
<token type="LiteralStringDoc"/>
+36
View File
@@ -0,0 +1,36 @@
<lexer>
<config>
<name>Z80 Assembly</name>
<alias>z80</alias>
<filename>*.z80</filename>
<filename>*.asm</filename>
<case_insensitive>true</case_insensitive>
</config>
<rules>
<state name="root">
<rule pattern=";.*?$"><token type="CommentSingle"/></rule>
<rule pattern="^[.\w]+:"><token type="NameLabel"/></rule>
<rule pattern="((0x)|\$)[0-9a-fA-F]+"><token type="LiteralNumberHex"/></rule>
<rule pattern="[0-9][0-9a-fA-F]+h"><token type="LiteralNumberHex"/></rule>
<rule pattern="((0b)|%)[01]+"><token type="LiteralNumberBin"/></rule>
<rule pattern="-?[0-9]+"><token type="LiteralNumberInteger"/></rule>
<rule pattern="&quot;"><token type="LiteralString"/><push state="string"/></rule>
<rule pattern="&#x27;\\?.&#x27;"><token type="LiteralStringChar"/></rule>
<rule pattern="[,=()\\]"><token type="Punctuation"/></rule>
<rule pattern="^\s*#\w+"><token type="CommentPreproc"/></rule>
<rule pattern="\.(db|dw|end|org|byte|word|fill|block|addinstr|echo|error|list|nolist|equ|show|option|seek)"><token type="NameBuiltin"/></rule>
<rule pattern="(ex|exx|ld|ldd|lddr|ldi|ldir|pop|push|adc|add|cp|cpd|cpdr|cpi|cpir|cpl|daa|dec|inc|neg|sbc|sub|and|bit|ccf|or|res|scf|set|xor|rl|rla|rlc|rlca|rld|rr|rra|rrc|rrca|rrd|sla|sra|srl|call|djnz|jp|jr|ret|rst|nop|reti|retn|di|ei|halt|im|in|ind|indr|ini|inir|out|outd|otdr|outi|otir)"><token type="Keyword"/></rule>
<rule pattern="(z|nz|c|nc|po|pe|p|m)"><token type="Keyword"/></rule>
<rule pattern="[+-/*~\^&amp;|]"><token type="Operator"/></rule>
<rule pattern="\w+"><token type="Text"/></rule>
<rule pattern="\s+"><token type="Text"/></rule>
</state>
<state name="string">
<rule pattern="[^&quot;\\]+"><token type="LiteralString"/></rule>
<rule pattern="\\."><token type="LiteralStringEscape"/></rule>
<rule pattern="&quot;"><token type="LiteralString"/><pop depth="1"/></rule>
</state>
</rules>
</lexer>
+1 -1
View File
@@ -655,7 +655,7 @@ func rakuRules() Rules {
// Substitution
{`(?<=^|\b|\s)(?<!\.)(ss|S|s|TR|tr)\b(\s*)`, ByGroups(Keyword, Text), Push("substitution")},
{keywordsPattern, Keyword, nil},
{builtinTypesPattern, NameBuiltin, nil},
{builtinTypesPattern, KeywordType, nil},
{builtinRoutinesPattern, NameBuiltin, nil},
// Class name
{
+2 -2
View File
@@ -1,7 +1,7 @@
<style name="vulcan">
<entry type="Other" style="#c9c9c9"/>
<entry type="Error" style="#cf5967"/>
<entry type="Background" style="#282c34"/>
<entry type="Background" style="bg:#282c34"/>
<entry type="Keyword" style="#7fbaf5"/>
<entry type="KeywordConstant" style="#cf5967 bg:#43454f"/>
<entry type="KeywordDeclaration" style="#7fbaf5"/>
@@ -71,4 +71,4 @@
<entry type="GenericUnderline" style="underline"/>
<entry type="Text" style="#c9c9c9"/>
<entry type="TextWhitespace" style="#c9c9c9"/>
</style>
</style>