chore(deps): bump github.com/alecthomas/chroma/v2 from 2.23.1 to 2.24.1

Bumps [github.com/alecthomas/chroma/v2](https://github.com/alecthomas/chroma) from 2.23.1 to 2.24.1.
- [Release notes](https://github.com/alecthomas/chroma/releases)
- [Commits](https://github.com/alecthomas/chroma/compare/v2.23.1...v2.24.1)

---
updated-dependencies:
- dependency-name: github.com/alecthomas/chroma/v2
  dependency-version: 2.24.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
dependabot[bot]
2026-04-30 22:11:51 +00:00
committed by GitHub
parent b8098dc1b9
commit b40cc1e04e
39 changed files with 1604 additions and 152 deletions

4
go.mod
View File

@@ -3,7 +3,7 @@ module github.com/cheat/cheat
go 1.26 go 1.26
require ( require (
github.com/alecthomas/chroma/v2 v2.23.1 github.com/alecthomas/chroma/v2 v2.24.1
github.com/davecgh/go-spew v1.1.1 github.com/davecgh/go-spew v1.1.1
github.com/go-git/go-git/v5 v5.16.5 github.com/go-git/go-git/v5 v5.16.5
github.com/mattn/go-isatty v0.0.20 github.com/mattn/go-isatty v0.0.20
@@ -18,7 +18,7 @@ require (
github.com/ProtonMail/go-crypto v1.3.0 // indirect github.com/ProtonMail/go-crypto v1.3.0 // indirect
github.com/cloudflare/circl v1.6.3 // indirect github.com/cloudflare/circl v1.6.3 // indirect
github.com/cyphar/filepath-securejoin v0.6.1 // indirect github.com/cyphar/filepath-securejoin v0.6.1 // indirect
github.com/dlclark/regexp2 v1.11.5 // indirect github.com/dlclark/regexp2 v1.12.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect github.com/emirpasic/gods v1.18.1 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.7.0 // indirect github.com/go-git/go-billy/v5 v5.7.0 // indirect

8
go.sum
View File

@@ -7,8 +7,8 @@ github.com/ProtonMail/go-crypto v1.3.0 h1:ILq8+Sf5If5DCpHQp4PbZdS1J7HDFRXz/+xKBi
github.com/ProtonMail/go-crypto v1.3.0/go.mod h1:9whxjD8Rbs29b4XWbB8irEcE8KHMqaR2e7GWU1R+/PE= github.com/ProtonMail/go-crypto v1.3.0/go.mod h1:9whxjD8Rbs29b4XWbB8irEcE8KHMqaR2e7GWU1R+/PE=
github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0= github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0=
github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
github.com/alecthomas/chroma/v2 v2.23.1 h1:nv2AVZdTyClGbVQkIzlDm/rnhk1E9bU9nXwmZ/Vk/iY= github.com/alecthomas/chroma/v2 v2.24.1 h1:m5ffpfZbIb++k8AqFEKy9uVgY12xIQtBsQlc6DfZJQM=
github.com/alecthomas/chroma/v2 v2.23.1/go.mod h1:NqVhfBR0lte5Ouh3DcthuUCTUpDC9cxBOfyMbMQPs3o= github.com/alecthomas/chroma/v2 v2.24.1/go.mod h1:l+ohZ9xRXIbGe7cIW+YZgOGbvuVLjMps/FYN/CwuabI=
github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs= github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs=
github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
@@ -23,8 +23,8 @@ github.com/cyphar/filepath-securejoin v0.6.1/go.mod h1:A8hd4EnAeyujCJRrICiOWqjS1
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ= github.com/dlclark/regexp2 v1.12.0 h1:0j4c5qQmnC6XOWNjP3PIXURXN2gWx76rd3KvgdPkCz8=
github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dlclark/regexp2 v1.12.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
github.com/elazarl/goproxy v1.7.2 h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o= github.com/elazarl/goproxy v1.7.2 h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o=
github.com/elazarl/goproxy v1.7.2/go.mod h1:82vkLNir0ALaW14Rc399OTTjyNREgmdL2cVoIbS6XaE= github.com/elazarl/goproxy v1.7.2/go.mod h1:82vkLNir0ALaW14Rc399OTTjyNREgmdL2cVoIbS6XaE=
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=

View File

@@ -17,3 +17,102 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
// formatters/svg/font_liberation_mono.go
Digitized data copyright (c) 2010 Google Corporation
with Reserved Font Arimo, Tinos and Cousine.
Copyright (c) 2012 Red Hat, Inc.
with Reserved Font Name Liberation.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://openfontlicense.org
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@@ -1,7 +1,7 @@
# Multi-stage Dockerfile for chromad Go application using Hermit-managed tools # Multi-stage Dockerfile for chromad Go application using Hermit-managed tools
# Build stage # Build stage
FROM ubuntu:24.04 AS builder FROM ubuntu:26.04 AS builder
# Install system dependencies # Install system dependencies
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \

View File

@@ -36,25 +36,25 @@ translators for Pygments lexers and styles.
| Prefix | Language | Prefix | Language
| :----: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| A | ABAP, ABNF, ActionScript, ActionScript 3, Ada, Agda, AL, Alloy, Angular2, ANTLR, ApacheConf, APL, AppleScript, ArangoDB AQL, Arduino, ArmAsm, ATL, AutoHotkey, AutoIt, Awk | A | ABAP, ABNF, ActionScript, ActionScript 3, Ada, Agda, AL, Alloy, AMPL, Angular2, ANTLR, ApacheConf, APL, AppleScript, ArangoDB AQL, Arduino, ArmAsm, ATL, AutoHotkey, AutoIt, Awk
| B | Ballerina, Bash, Bash Session, Batchfile, Beef, BibTeX, Bicep, BlitzBasic, BNF, BQN, Brainfuck | B | Ballerina, Bash, Bash Session, Batchfile, Beef, BibTeX, Bicep, BlitzBasic, BNF, BQN, Brainfuck
| C | C, C#, C++, C3, Caddyfile, Caddyfile Directives, Cap'n Proto, Cassandra CQL, Ceylon, CFEngine3, cfstatement, ChaiScript, Chapel, Cheetah, Clojure, CMake, COBOL, CoffeeScript, Common Lisp, Coq, Core, Crystal, CSS, CSV, CUE, Cython | C | C, C#, C++, C3, Caddyfile, Caddyfile Directives, Cap'n Proto, Cassandra CQL, Ceylon, CFEngine3, cfstatement, ChaiScript, Chapel, Cheetah, Clojure, CMake, COBOL, CoffeeScript, Common Lisp, Coq, Core, Crystal, CSS, CSV, CUE, Cython
| D | D, Dart, Dax, Desktop file, Diff, Django/Jinja, dns, Docker, DTD, Dylan | D | D, Dart, Dax, Desktop file, Diff, Django/Jinja, dns, Docker, DTD, Dylan
| E | EBNF, Elixir, Elm, EmacsLisp, Erlang | E | EBNF, Elixir, Elm, EmacsLisp, Erlang
| F | Factor, Fennel, Fish, Forth, Fortran, FortranFixed, FSharp | F | Factor, Fennel, Fish, Forth, Fortran, FortranFixed, FSharp
| G | GAS, GDScript, GDScript3, Gemtext, Genshi, Genshi HTML, Genshi Text, Gherkin, Gleam, GLSL, Gnuplot, Go, Go HTML Template, Go Template, Go Text Template, GraphQL, Groff, Groovy | G | GAS, GDScript, GDScript3, Gemtext, Genshi, Genshi HTML, Genshi Text, Gettext, Gherkin, Gleam, GLSL, Gnuplot, Go, Go HTML Template, Go Template, Go Text Template, GraphQL, Groff, Groovy
| H | Handlebars, Hare, Haskell, Haxe, HCL, Hexdump, HLB, HLSL, HolyC, HTML, HTTP, Hy | H | Handlebars, Hare, Haskell, Haxe, HCL, Hexdump, HLB, HLSL, HolyC, HTML, HTTP, Hy
| I | Idris, Igor, INI, Io, ISCdhcpd | I | Idris, Igor, INI, Io, ISCdhcpd
| J | J, Janet, Java, JavaScript, JSON, JSONata, Jsonnet, Julia, Jungle | J | J, Janet, Java, JavaScript, JSON, JSONata, Jsonnet, Julia, Jungle
| K | Kakoune, Kotlin | K | Kakoune, Kotlin
| L | Lean4, Lighttpd configuration file, LLVM, lox, Lua | L | Lean4, Lighttpd configuration file, LLVM, lox, Lua, Luau
| M | Makefile, Mako, markdown, Markless, Mason, Materialize SQL dialect, Mathematica, Matlab, MCFunction, Meson, Metal, MiniZinc, MLIR, Modelica, Modula-2, Mojo, MonkeyC, MoonScript, MorrowindScript, Myghty, MySQL | M | Makefile, Mako, markdown, Markless, Mason, Materialize SQL dialect, Mathematica, Matlab, MCFunction, Meson, Metal, MiniZinc, MLIR, Modelica, Modula-2, Mojo, MonkeyC, MoonScript, MorrowindScript, Myghty, MySQL
| N | NASM, Natural, NDISASM, Newspeak, Nginx configuration file, Nim, Nix, NSIS, Nu | N | NASM, Natural, NDISASM, Newspeak, Nginx configuration file, Nim, Nix, NSIS, Nu
| O | Objective-C, ObjectPascal, OCaml, Octave, Odin, OnesEnterprise, OpenEdge ABL, OpenSCAD, Org Mode | O | Objective-C, ObjectPascal, OCaml, Octave, Odin, OnesEnterprise, OpenEdge ABL, OpenSCAD, Org Mode
| P | PacmanConf, Perl, PHP, PHTML, Pig, PkgConfig, PL/pgSQL, plaintext, Plutus Core, Pony, PostgreSQL SQL dialect, PostScript, POVRay, PowerQuery, PowerShell, Prolog, Promela, PromQL, properties, Protocol Buffer, Protocol Buffer Text Format, PRQL, PSL, Puppet, Python, Python 2 | P | PacmanConf, Perl, PHP, PHTML, Pig, PkgConfig, PL/pgSQL, plaintext, Plutus Core, Pony, PostgreSQL SQL dialect, PostScript, POVRay, PowerQuery, PowerShell, Prolog, Promela, PromQL, properties, Protocol Buffer, Protocol Buffer Text Format, PRQL, PSL, Puppet, Python, Python 2
| Q | QBasic, QML | Q | QBasic, QML
| R | R, Racket, Ragel, Raku, react, ReasonML, reg, Rego, reStructuredText, Rexx, RGBDS Assembly, Ring, RPGLE, RPMSpec, Ruby, Rust | R | R, Racket, Ragel, Raku, react, ReasonML, reg, Rego, reStructuredText, Rexx, RGBDS Assembly, Ring, RPGLE, RPMSpec, Ruby, Rust
| S | SAS, Sass, Scala, Scheme, Scilab, SCSS, Sed, Sieve, Smali, Smalltalk, Smarty, SNBT, Snobol, Solidity, SourcePawn, SPARQL, SQL, SquidConf, Standard ML, stas, Stylus, Svelte, Swift, SYSTEMD, systemverilog | S | SAS, Sass, Scala, Scheme, Scilab, SCSS, Sed, Sieve, Smali, Smalltalk, Smarty, SNBT, Snobol, Solidity, SourcePawn, Spade, SPARQL, SQL, SquidConf, Standard ML, stas, Stylus, Svelte, Swift, SYSTEMD, systemverilog
| T | TableGen, Tal, TASM, Tcl, Tcsh, Termcap, Terminfo, Terraform, TeX, Thrift, TOML, TradingView, Transact-SQL, Turing, Turtle, Twig, TypeScript, TypoScript, TypoScriptCssData, TypoScriptHtmlData, Typst | T | TableGen, Tal, TASM, Tcl, Tcsh, Termcap, Terminfo, Terraform, TeX, Thrift, TOML, TradingView, Transact-SQL, Turing, Turtle, Twig, TypeScript, TypoScript, TypoScriptCssData, TypoScriptHtmlData, Typst
| U | ucode | U | ucode
| V | V, V shell, Vala, VB.net, verilog, VHDL, VHS, VimL, vue | V | V, V shell, Vala, VB.net, verilog, VHDL, VHS, VimL, vue
@@ -226,11 +226,11 @@ formatter outputs raw tokens. The latter is useful for debugging lexers.
### Styles ### Styles
Chroma styles are defined in XML. The style entries use the Chroma styles are defined in XML. The style entries use the
[same syntax](http://pygments.org/docs/styles/) as Pygments. [same syntax](http://pygments.org/docs/styles/) as Pygments. All Pygments styles have been converted to Chroma using the `_tools/style.py`
All Pygments styles have been converted to Chroma using the `_tools/style.py`
script. script.
Style names are case-insensitive. For example, `monokai` and `Monokai` are treated as the same style.
When you work with one of [Chroma's styles](https://github.com/alecthomas/chroma/tree/master/styles), When you work with one of [Chroma's styles](https://github.com/alecthomas/chroma/tree/master/styles),
know that the `Background` token type provides the default style for tokens. It does so know that the `Background` token type provides the default style for tokens. It does so
by defining a foreground color and background color. by defining a foreground color and background color.

View File

@@ -4,7 +4,7 @@
// with Reserved Font Name Liberation. // with Reserved Font Name Liberation.
// //
// This Font Software is licensed under the SIL Open Font License, Version 1.1. // This Font Software is licensed under the SIL Open Font License, Version 1.1.
// This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL // This license is copied below, and is also available with a FAQ at: https://openfontlicense.org
// //
// ----------------------------------------------------------- // -----------------------------------------------------------
// SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 // SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007

View File

@@ -0,0 +1,98 @@
<lexer>
<config>
<name>AMPL</name>
<alias>ampl</alias>
<filename>*.mod</filename>
<filename>*.run</filename>
<mime_type>text/x-ampl</mime_type>
<case_insensitive>false</case_insensitive>
<dot_all>true</dot_all>
</config>
<rules>
<state name="root">
<!-- Whitespace -->
<rule pattern="\s+">
<token type="Text"/>
</rule>
<!-- Comments: '#' to end-of-line and C-style comments -->
<rule pattern="#[^\n]*">
<token type="Comment"/>
</rule>
<rule pattern="/\*">
<token type="Comment"/>
<push state="comment"/>
</rule>
<!-- Strings -->
<rule pattern="&quot;(\\.|[^\\&quot;])*&quot;">
<token type="LiteralString"/>
</rule>
<rule pattern="&#39;(\\.|[^\\&#39;])*&#39;">
<token type="LiteralString"/>
</rule>
<!-- Numbers -->
<rule pattern="\b\d+\.\d*([eE][+-]?\d+)?\b">
<token type="LiteralNumberFloat"/>
</rule>
<rule pattern="\b\d+[eE][+-]?\d+\b">
<token type="LiteralNumberFloat"/>
</rule>
<rule pattern="\b\d+\b">
<token type="LiteralNumberInteger"/>
</rule>
<!-- Commands / Reserved keywords -->
<rule pattern="\b(call|cd|close|commands|data|delete|display|drop|end|environ|exit|expand|include|load|model|objective|option|problem|purge|quit|redeclare|reload|remove|reset|restore|shell|show|solexpand|solution|solve|update|unload|xref|coeff|coef|cover|obj|interval|default|from|to|to_come|net_in|net_out|dimen|dimension|check|complements|write|function|pipe|format|if|then|else|in|while|repeat|for)\b">
<token type="KeywordReserved"/>
</rule>
<!-- Types -->
<rule pattern="\b(integer|binary|symbolic|ordered|circular|reversed|INOUT|IN|OUT|LOCAL)\b">
<token type="KeywordType"/>
</rule>
<!-- Declarations (set/param/var etc) -->
<rule pattern="\b(set|param|var|arc|minimize|maximize|subject to|s\.t\.|subj to|node|table|suffix|read table|write table)\b">
<token type="KeywordDeclaration"/>
</rule>
<!-- Builtins / Functions -->
<rule pattern="\b(abs|acos|acosh|alias|asin|asinh|atan|atan2|atanh|ceil|ctime|cos|exp|floor|log|log10|max|min|precision|round|sin|sinh|sqrt|tan|tanh|time|trunc|Beta|Cauchy|Exponential|Gamma|Irand224|Normal|Normal01|Poisson|Uniform|Uniform01|num|num0|ichar|char|length|substr|sprintf|match|sub|gsub|print|printf|next|nextw|prev|prevw|first|last|ord|ord0|card|arity|indexarity)\b">
<token type="NameBuiltin"/>
</rule>
<!-- Operator words (logical/set operators) -->
<rule pattern="\b(or|exists|forall|and|in|not|within|union|diff|difference|symdiff|inter|intersect|intersection|cross|setof|by|less|sum|prod|product|div|mod)\b">
<token type="OperatorWord"/>
</rule>
<!-- Identifiers -->
<rule pattern="[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z0-9_]+)*">
<token type="Name"/>
</rule>
<!-- Operators and punctuation -->
<rule pattern="\+|\-|\*|/|\*\*|=|&lt;=|&gt;=|==|\||\^|&lt;|&gt;|\!|\.\.|:=|\&amp;|\!=|&lt;&lt;|&gt;&gt;">
<token type="Operator"/>
</rule>
<rule pattern="[(),;:\[\]{}.]">
<token type="Punctuation"/>
</rule>
</state>
<state name="comment">
<rule pattern="[^*]+">
<token type="Comment"/>
</rule>
<rule pattern="\*/">
<token type="Comment"/>
<pop depth="1"/>
</rule>
<rule pattern="\*">
<token type="Comment"/>
</rule>
</state>
</rules>
</lexer>

View File

@@ -0,0 +1,37 @@
<lexer>
<config>
<name>ERB</name>
<dot_all>true</dot_all>
</config>
<rules>
<state name="root">
<rule pattern="(&lt;%#)(.*?)(-?%&gt;)">
<bygroups>
<token type="CommentPreproc"/>
<token type="Comment"/>
<token type="CommentPreproc"/>
</bygroups>
</rule>
<rule pattern="(&lt;%-?=)(.*?)(-?%&gt;)">
<bygroups>
<token type="CommentPreproc"/>
<using lexer="Ruby"/>
<token type="CommentPreproc"/>
</bygroups>
</rule>
<rule pattern="(&lt;%-?)(.*?)(-?%&gt;)">
<bygroups>
<token type="CommentPreproc"/>
<using lexer="Ruby"/>
<token type="CommentPreproc"/>
</bygroups>
</rule>
<rule pattern="[^&lt;]+">
<token type="Other"/>
</rule>
<rule pattern="&lt;">
<token type="Other"/>
</rule>
</state>
</rules>
</lexer>

View File

@@ -56,7 +56,7 @@
<token type="Text"/> <token type="Text"/>
<pop depth="1"/> <pop depth="1"/>
</rule> </rule>
<rule pattern="([;#]|//).*?\n"> <rule pattern="([;#@|!]|//).*\n?">
<token type="CommentSingle"/> <token type="CommentSingle"/>
<pop depth="1"/> <pop depth="1"/>
</rule> </rule>
@@ -114,7 +114,7 @@
<token type="Text"/> <token type="Text"/>
<pop depth="1"/> <pop depth="1"/>
</rule> </rule>
<rule pattern="([;#]|//).*?\n"> <rule pattern="([;#@|!]|//).*\n?">
<token type="CommentSingle"/> <token type="CommentSingle"/>
<pop depth="1"/> <pop depth="1"/>
</rule> </rule>
@@ -139,7 +139,7 @@
<rule pattern="\s+"> <rule pattern="\s+">
<token type="Text"/> <token type="Text"/>
</rule> </rule>
<rule pattern="([;#]|//).*?\n"> <rule pattern="([;#@|!]|//).*\n?">
<token type="CommentSingle"/> <token type="CommentSingle"/>
</rule> </rule>
<rule pattern="/[*][\w\W]*?[*]/"> <rule pattern="/[*][\w\W]*?[*]/">

View File

@@ -0,0 +1,24 @@
<lexer>
<config>
<name>Gettext</name>
<alias>pot</alias>
<alias>po</alias>
<filename>*.pot</filename>
<filename>*.po</filename>
<mime_type>application/x-gettext</mime_type>
<mime_type>text/x-gettext</mime_type>
<mime_type>text/gettext</mime_type>
</config>
<rules>
<state name="root">
<rule pattern="^#,\s.*?$"><token type="KeywordType"/></rule>
<rule pattern="^#:\s.*?$"><token type="KeywordDeclaration"/></rule>
<rule pattern="^(#|#\.\s|#\|\s|#~\s|#\s).*$"><token type="CommentSingle"/></rule>
<rule pattern="^(&quot;)([A-Za-z-]+:)(.*&quot;)$"><bygroups><token type="LiteralString"/><token type="NameProperty"/><token type="LiteralString"/></bygroups></rule>
<rule pattern="^&quot;.*&quot;$"><token type="LiteralString"/></rule>
<rule pattern="^(msgid|msgid_plural|msgstr|msgctxt)(\s+)(&quot;.*&quot;)$"><bygroups><token type="NameVariable"/><token type="Text"/><token type="LiteralString"/></bygroups></rule>
<rule pattern="^(msgstr\[)(\d)(\])(\s+)(&quot;.*&quot;)$"><bygroups><token type="NameVariable"/><token type="LiteralNumberInteger"/><token type="NameVariable"/><token type="Text"/><token type="LiteralString"/></bygroups></rule>
</state>
</rules>
</lexer>

View File

@@ -76,6 +76,10 @@
</rule> </rule>
</state> </state>
<state name="type"> <state name="type">
<rule pattern="[\{\}\(\)\[\]]">
<token type="Punctuation"/>
<pop depth="1"/>
</rule>
<rule pattern="[^\W\d]\w*"> <rule pattern="[^\W\d]\w*">
<token type="NameClass"/> <token type="NameClass"/>
<pop depth="1"/> <pop depth="1"/>

View File

@@ -133,7 +133,7 @@
<token type="KeywordDeclaration"/> <token type="KeywordDeclaration"/>
<push state="slashstartsregex"/> <push state="slashstartsregex"/>
</rule> </rule>
<rule pattern="(abstract|async|await|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"> <rule pattern="(abstract|async|await|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|using|volatile)\b">
<token type="KeywordReserved"/> <token type="KeywordReserved"/>
</rule> </rule>
<rule pattern="(true|false|null|NaN|Infinity|undefined)\b"> <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">

View File

@@ -4,7 +4,9 @@
<alias>json</alias> <alias>json</alias>
<filename>*.json</filename> <filename>*.json</filename>
<filename>*.jsonc</filename> <filename>*.jsonc</filename>
<filename>*.json5</filename>
<filename>*.avsc</filename> <filename>*.avsc</filename>
<filename>.luaurc</filename>
<mime_type>application/json</mime_type> <mime_type>application/json</mime_type>
<dot_all>true</dot_all> <dot_all>true</dot_all>
<not_multiline>true</not_multiline> <not_multiline>true</not_multiline>

View File

@@ -0,0 +1,184 @@
<lexer>
<config>
<name>Lateralus</name>
<alias>lateralus</alias>
<alias>ltl</alias>
<filename>*.ltl</filename>
<mime_type>text/x-lateralus</mime_type>
<ensure_nl>true</ensure_nl>
</config>
<rules>
<state name="root">
<!-- Whitespace -->
<rule pattern="\s+">
<token type="TextWhitespace"/>
</rule>
<!-- Comments -->
<rule pattern="///[^\n]*">
<token type="CommentSpecial"/>
</rule>
<rule pattern="//[^\n]*">
<token type="CommentSingle"/>
</rule>
<rule pattern="/\*">
<token type="CommentMultiline"/>
<push state="block_comment"/>
</rule>
<!-- Attribute decorators: @memo, @doc("...") -->
<rule pattern="@[A-Za-z_][A-Za-z0-9_]*">
<token type="NameDecorator"/>
</rule>
<!-- Capability annotations: #[caps(io, net)] -->
<rule pattern="#\[">
<token type="NameDecorator"/>
<push state="attribute"/>
</rule>
<!-- Control flow / declaration keywords -->
<rule pattern="(fn|let|mut|match|if|else|elif|while|for|in|return|break|continue|import|export|module|pub|priv|struct|enum|impl|trait|where|type|const|static|async|await|spawn|guard|defer|use|as|self|Self|super|yield|do)\b">
<token type="Keyword"/>
</rule>
<!-- Builtin types -->
<rule pattern="(int|i8|i16|i32|i64|i128|uint|u8|u16|u32|u64|u128|float|f32|f64|bool|str|char|bytes|any|never|list|map|set|tuple|Option|Result|Some|None|Ok|Err)\b">
<token type="KeywordType"/>
</rule>
<!-- Boolean / null literals -->
<rule pattern="(true|false|null)\b">
<token type="KeywordConstant"/>
</rule>
<!-- Builtin functions -->
<rule pattern="(print|println|eprint|eprintln|format|panic|assert|assert_eq|todo|unimplemented|unreachable|len|range|map|filter|reduce|fold|zip|enumerate|sort|sorted|reverse|sum|min|max)\b">
<token type="NameBuiltin"/>
</rule>
<!-- Function definition -->
<rule pattern="(fn)(\s+)([A-Za-z_][A-Za-z0-9_]*)">
<bygroups>
<token type="Keyword"/>
<token type="TextWhitespace"/>
<token type="NameFunction"/>
</bygroups>
</rule>
<!-- Type / struct / enum / trait / impl definition -->
<rule pattern="(struct|enum|trait|type|impl)(\s+)([A-Z][A-Za-z0-9_]*)">
<bygroups>
<token type="Keyword"/>
<token type="TextWhitespace"/>
<token type="NameClass"/>
</bygroups>
</rule>
<!-- Module path: foo::bar -->
<rule pattern="([A-Za-z_][A-Za-z0-9_]*)(::)">
<bygroups>
<token type="NameNamespace"/>
<token type="Punctuation"/>
</bygroups>
</rule>
<!-- ADT variant: UppercaseIdentifier -->
<rule pattern="[A-Z][A-Za-z0-9_]*">
<token type="NameClass"/>
</rule>
<!-- Raw strings: r"...", r#"..."# -->
<rule pattern="r#&#34;.*?&#34;#">
<token type="LiteralString"/>
</rule>
<rule pattern="r&#34;[^&#34;\\]*(?:\\.[^&#34;\\]*)*&#34;">
<token type="LiteralString"/>
</rule>
<!-- Byte strings -->
<rule pattern="b&#34;">
<token type="LiteralString"/>
<push state="string"/>
</rule>
<!-- Regular / interpolated strings -->
<rule pattern="&#34;">
<token type="LiteralString"/>
<push state="string"/>
</rule>
<!-- Char literals -->
<rule pattern="&#39;(?:\\.|[^&#39;\\])&#39;">
<token type="LiteralStringChar"/>
</rule>
<!-- Numeric literals -->
<rule pattern="[0-9][0-9_]*\.[0-9][0-9_]*(?:[eE][-+]?[0-9][0-9_]*)?(?:_?f(32|64))?">
<token type="LiteralNumberFloat"/>
</rule>
<rule pattern="0x[0-9a-fA-F][0-9a-fA-F_]*(?:_?[iu](8|16|32|64|128))?">
<token type="LiteralNumberHex"/>
</rule>
<rule pattern="0o[0-7][0-7_]*(?:_?[iu](8|16|32|64|128))?">
<token type="LiteralNumberOct"/>
</rule>
<rule pattern="0b[01][01_]*(?:_?[iu](8|16|32|64|128))?">
<token type="LiteralNumberBin"/>
</rule>
<rule pattern="[0-9][0-9_]*(?:_?[iu](8|16|32|64|128))?">
<token type="LiteralNumberInteger"/>
</rule>
<!-- Pipeline operator (signature feature) -->
<rule pattern="\|&gt;">
<token type="Operator"/>
</rule>
<!-- Other operators -->
<rule pattern="(==|!=|&lt;=|&gt;=|-&gt;|=&gt;|&amp;&amp;|\|\||&lt;&lt;|&gt;&gt;|::|\.\.=?|\?\?|[+\-*/%&lt;&gt;!=&amp;|\^~?])">
<token type="Operator"/>
</rule>
<!-- Punctuation -->
<rule pattern="[{}()\[\];,.:]">
<token type="Punctuation"/>
</rule>
<!-- Identifiers -->
<rule pattern="[A-Za-z_][A-Za-z0-9_]*">
<token type="Name"/>
</rule>
</state>
<state name="block_comment">
<rule pattern="[^/*]+">
<token type="CommentMultiline"/>
</rule>
<rule pattern="/\*">
<token type="CommentMultiline"/>
<push/>
</rule>
<rule pattern="\*/">
<token type="CommentMultiline"/>
<pop depth="1"/>
</rule>
<rule pattern="[/*]">
<token type="CommentMultiline"/>
</rule>
</state>
<state name="string">
<rule pattern="\\[nrt&#39;&#34;\\0]">
<token type="LiteralStringEscape"/>
</rule>
<rule pattern="\\x[0-9a-fA-F]{2}">
<token type="LiteralStringEscape"/>
</rule>
<rule pattern="\\u\{[0-9a-fA-F]+\}">
<token type="LiteralStringEscape"/>
</rule>
<rule pattern="\{[^}]*\}">
<token type="LiteralStringInterpol"/>
</rule>
<rule pattern="[^&#34;\\{}]+">
<token type="LiteralString"/>
</rule>
<rule pattern="&#34;">
<token type="LiteralString"/>
<pop depth="1"/>
</rule>
</state>
<state name="attribute">
<rule pattern="[^\[\]]+">
<token type="NameDecorator"/>
</rule>
<rule pattern="\[">
<token type="NameDecorator"/>
<push/>
</rule>
<rule pattern="\]">
<token type="NameDecorator"/>
<pop depth="1"/>
</rule>
</state>
</rules>
</lexer>

View File

@@ -2,10 +2,8 @@
<config> <config>
<name>Lua</name> <name>Lua</name>
<alias>lua</alias> <alias>lua</alias>
<alias>luau</alias>
<filename>*.lua</filename> <filename>*.lua</filename>
<filename>*.wlua</filename> <filename>*.wlua</filename>
<filename>*.luau</filename>
<mime_type>text/x-lua</mime_type> <mime_type>text/x-lua</mime_type>
<mime_type>application/x-lua</mime_type> <mime_type>application/x-lua</mime_type>
</config> </config>

View File

@@ -0,0 +1,173 @@
<lexer>
<config>
<name>Luau</name>
<alias>luau</alias>
<filename>*.luau</filename>
</config>
<rules>
<state name="root">
<rule pattern="#!.*"><token type="CommentHashbang"/><push state="base"/></rule>
<rule><push state="base"/></rule>
</state>
<state name="ws">
<rule pattern="(?:--\[(?&lt;level&gt;=*)\[[\w\W]*?\](?=level)\])"><token type="CommentMultiline"/></rule>
<rule pattern="(?:--.*$)"><token type="CommentSingle"/></rule>
<rule pattern="\s+"><token type="TextWhitespace"/></rule>
</state>
<state name="base">
<rule><include state="ws"/></rule>
<rule pattern="\{"><token type="Punctuation"/><push state="closing_brace_base" state="expression"/></rule>
<rule pattern="\("><token type="Punctuation"/><push state="closing_parenthesis_base" state="expression"/></rule>
<rule pattern="::?"><token type="Punctuation"/><push state="type_end" state="type_start"/></rule>
<rule pattern="&#x27;"><token type="LiteralStringSingle"/><push state="string_single"/></rule>
<rule pattern="&quot;"><token type="LiteralStringDouble"/><push state="string_double"/></rule>
<rule pattern="`"><token type="LiteralStringBacktick"/><push state="string_interpolated"/></rule>
<rule pattern="\.\.\."><token type="Punctuation"/></rule>
<rule pattern="type\b(?=(?:(?:--\[(?&lt;level&gt;=*)\[[\w\W]*?\](?=level)\])|(?:--.*$)|\s+)+[a-zA-Z_])"><token type="KeywordReserved"/><push state="type_declaration"/></rule>
<rule pattern="export\b(?=(?:(?:--\[(?&lt;level&gt;=*)\[[\w\W]*?\](?=level)\])|(?:--.*$)|\s+)+[a-zA-Z_])"><token type="KeywordReserved"/></rule>
<rule pattern="(?:\.\.|//|[+\-*\/%^&lt;&gt;=])=?"><token type="Operator"/><push state="expression"/></rule>
<rule pattern="~="><token type="Operator"/><push state="expression"/></rule>
<rule pattern="(and|or|not)\b"><token type="OperatorWord"/><push state="expression"/></rule>
<rule pattern="(elseif|for|if|in|repeat|return|until|while)\b"><token type="KeywordReserved"/><push state="expression"/></rule>
<rule pattern="local\b"><token type="KeywordDeclaration"/><push state="expression"/></rule>
<rule pattern="function\b"><token type="KeywordReserved"/><push state="expression" state="func_name"/></rule>
<rule pattern="[\])};]+"><token type="Punctuation"/></rule>
<rule><include state="expression_static"/></rule>
<rule pattern="0[xX][\da-fA-F_]*"><token type="LiteralNumberHex"/></rule>
<rule pattern="0[bB][\d_]*"><token type="LiteralNumberBin"/></rule>
<rule pattern="\.?\d[\d_]*(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?"><token type="LiteralNumberFloat"/></rule>
<rule pattern="(true|false|nil)\b"><token type="KeywordConstant"/></rule>
<rule pattern="\[(=*)\[[.\n]*?\]\1\]"><token type="LiteralString"/></rule>
<rule pattern="(\.)([a-zA-Z_]\w*)(?=%s*[({&quot;\&#x27;])"><bygroups><token type="Punctuation"/><token type="NameFunction"/></bygroups></rule>
<rule pattern="(\.)([a-zA-Z_]\w*)"><bygroups><token type="Punctuation"/><token type="NameVariable"/></bygroups></rule>
<rule pattern="[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*(?=(?:(?:--\[(?&lt;level&gt;=*)\[[\w\W]*?\](?=level)\])|(?:--.*$)|\s+)*[({&quot;\&#x27;])"><token type="NameOther"/></rule>
<rule pattern="[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*"><token type="Name"/></rule>
<rule pattern="[\[.,]"><token type="Punctuation"/><push state="expression"/></rule>
</state>
<state name="expression_static">
<rule pattern="(break|continue|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\b"><token type="KeywordReserved"/></rule>
</state>
<state name="expression">
<rule><include state="ws"/></rule>
<rule pattern="if\b"><token type="KeywordReserved"/><push state="ternary" state="expression"/></rule>
<rule pattern="local\b"><token type="KeywordDeclaration"/></rule>
<rule pattern="\{"><token type="Punctuation"/><push state="#pop" state="closing_brace_base" state="expression"/></rule>
<rule pattern="\("><token type="Punctuation"/><push state="#pop" state="closing_parenthesis_base" state="expression"/></rule>
<rule pattern="::?"><token type="Punctuation"/><push state="#pop" state="type_end" state="type_start"/></rule>
<rule pattern="&#x27;"><token type="LiteralStringSingle"/><push state="#pop" state="string_single"/></rule>
<rule pattern="&quot;"><token type="LiteralStringDouble"/><push state="#pop" state="string_double"/></rule>
<rule pattern="`"><token type="LiteralStringBacktick"/><push state="#pop" state="string_interpolated"/></rule>
<rule pattern="\.\.\."><token type="Punctuation"/><pop depth="1"/></rule>
<rule pattern="function\b"><token type="KeywordReserved"/><push state="func_name"/></rule>
<rule><include state="expression_static"/></rule>
<rule pattern="0[xX][\da-fA-F_]*"><token type="LiteralNumberHex"/><pop depth="1"/></rule>
<rule pattern="0[bB][\d_]*"><token type="LiteralNumberBin"/><pop depth="1"/></rule>
<rule pattern="\.?\d[\d_]*(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?"><token type="LiteralNumberFloat"/><pop depth="1"/></rule>
<rule pattern="(true|false|nil)\b"><token type="KeywordConstant"/><pop depth="1"/></rule>
<rule pattern="\[(=*)\[[.\n]*?\]\1\]"><token type="LiteralString"/><pop depth="1"/></rule>
<rule pattern="(\.)([a-zA-Z_]\w*)(?=%s*[({&quot;\&#x27;])"><bygroups><token type="Punctuation"/><token type="NameFunction"/></bygroups><pop depth="1"/></rule>
<rule pattern="(\.)([a-zA-Z_]\w*)"><bygroups><token type="Punctuation"/><token type="NameVariable"/></bygroups><pop depth="1"/></rule>
<rule pattern="[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*(?=(?:(?:--\[(?&lt;level&gt;=*)\[[\w\W]*?\](?=level)\])|(?:--.*$)|\s+)*[({&quot;\&#x27;])"><token type="NameOther"/><pop depth="1"/></rule>
<rule pattern="[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*"><token type="Name"/><pop depth="1"/></rule>
<rule><pop depth="1"/></rule>
</state>
<state name="ternary">
<rule><include state="ws"/></rule>
<rule pattern="else\b"><token type="KeywordReserved"/><pop depth="1"/></rule>
<rule pattern="(then|elseif)\b"><token type="OperatorReserved"/><push state="expression"/></rule>
<rule><pop depth="1"/></rule>
</state>
<state name="closing_brace_pop">
<rule pattern="\}"><token type="Punctuation"/><pop depth="1"/></rule>
</state>
<state name="closing_parenthesis_pop">
<rule pattern="\)"><token type="Punctuation"/><pop depth="1"/></rule>
</state>
<state name="closing_gt_pop">
<rule pattern="&gt;"><token type="Punctuation"/><pop depth="1"/></rule>
</state>
<state name="closing_parenthesis_base">
<rule><include state="closing_parenthesis_pop"/></rule>
<rule><include state="base"/></rule>
</state>
<state name="closing_parenthesis_type">
<rule><include state="closing_parenthesis_pop"/></rule>
<rule><include state="type"/></rule>
</state>
<state name="closing_brace_base">
<rule><include state="closing_brace_pop"/></rule>
<rule><include state="base"/></rule>
</state>
<state name="closing_brace_type">
<rule><include state="closing_brace_pop"/></rule>
<rule><include state="type"/></rule>
</state>
<state name="closing_gt_type">
<rule><include state="closing_gt_pop"/></rule>
<rule><include state="type"/></rule>
</state>
<state name="string_escape">
<rule pattern="\\z\s*"><token type="LiteralStringEscape"/></rule>
<rule pattern="\\(?:[abfnrtvz\\&quot;\&#x27;`\{\n])|[\r\n]{1,2}|x[\da-fA-F]{2}|\d{1,3}|u\{\}[\da-fA-F]*\}"><token type="LiteralStringEscape"/></rule>
</state>
<state name="string_single">
<rule><include state="string_escape"/></rule>
<rule pattern="&#x27;"><token type="LiteralStringSingle"/><pop depth="1"/></rule>
<rule pattern="[^\\&#x27;]+"><token type="LiteralStringSingle"/></rule>
</state>
<state name="string_double">
<rule><include state="string_escape"/></rule>
<rule pattern="&quot;"><token type="LiteralStringDouble"/><pop depth="1"/></rule>
<rule pattern="[^\\&quot;]+"><token type="LiteralStringDouble"/></rule>
</state>
<state name="string_interpolated">
<rule><include state="string_escape"/></rule>
<rule pattern="\{"><token type="Punctuation"/><push state="closing_brace_base" state="expression"/></rule>
<rule pattern="`"><token type="LiteralStringBacktick"/><pop depth="1"/></rule>
<rule pattern="[^\\`\{]+"><token type="LiteralStringBacktick"/></rule>
</state>
<state name="func_name">
<rule><include state="ws"/></rule>
<rule pattern="[.:]"><token type="Punctuation"/></rule>
<rule pattern="[a-zA-Z_]\w*(?=(?:(?:--\[(?&lt;level&gt;=*)\[[\w\W]*?\](?=level)\])|(?:--.*$)|\s+)*[.:])"><token type="NameClass"/></rule>
<rule pattern="[a-zA-Z_]\w*"><token type="NameFunction"/></rule>
<rule pattern="&lt;"><token type="Punctuation"/><push state="closing_gt_type"/></rule>
<rule pattern="\("><token type="Punctuation"/><pop depth="1"/></rule>
</state>
<state name="type">
<rule><include state="ws"/></rule>
<rule pattern="\("><token type="Punctuation"/><push state="closing_parenthesis_type"/></rule>
<rule pattern="\{"><token type="Punctuation"/><push state="closing_brace_type"/></rule>
<rule pattern="&lt;"><token type="Punctuation"/><push state="closing_gt_type"/></rule>
<rule pattern="&#x27;"><token type="LiteralStringSingle"/><push state="string_single"/></rule>
<rule pattern="&quot;"><token type="LiteralStringDouble"/><push state="string_double"/></rule>
<rule pattern="[|&amp;\.,\[\]:=]+"><token type="Punctuation"/></rule>
<rule pattern="-&gt;"><token type="Punctuation"/></rule>
<rule pattern="typeof\("><token type="NameBuiltin"/><push state="closing_parenthesis_base" state="expression"/></rule>
<rule pattern="[a-zA-Z_]\w*"><token type="NameClass"/></rule>
</state>
<state name="type_start">
<rule><include state="ws"/></rule>
<rule pattern="\("><token type="Punctuation"/><push state="#pop" state="closing_parenthesis_type"/></rule>
<rule pattern="\{"><token type="Punctuation"/><push state="#pop" state="closing_brace_type"/></rule>
<rule pattern="&lt;"><token type="Punctuation"/><push state="#pop" state="closing_gt_type"/></rule>
<rule pattern="&#x27;"><token type="LiteralStringSingle"/><push state="#pop" state="string_single"/></rule>
<rule pattern="&quot;"><token type="LiteralStringDouble"/><push state="#pop" state="string_double"/></rule>
<rule pattern="typeof\("><token type="NameBuiltin"/><push state="#pop" state="closing_parenthesis_base" state="expression"/></rule>
<rule pattern="[a-zA-Z_]\w*"><token type="NameClass"/><pop depth="1"/></rule>
</state>
<state name="type_end">
<rule><include state="ws"/></rule>
<rule pattern="[|&amp;\.]"><token type="Punctuation"/><push state="type_start"/></rule>
<rule pattern="-&gt;"><token type="Punctuation"/><push state="type_start"/></rule>
<rule pattern="&lt;"><token type="Punctuation"/><push state="closing_gt_type"/></rule>
<rule><pop depth="1"/></rule>
</state>
<state name="type_declaration">
<rule><include state="ws"/></rule>
<rule pattern="[a-zA-Z_]\w*"><token type="NameClass"/></rule>
<rule pattern="&lt;"><token type="Punctuation"/><push state="closing_gt_type"/></rule>
<rule pattern="="><token type="Punctuation"/><push state="#pop" state="type_end" state="type_start"/></rule>
</state>
</rules>
</lexer>

View File

@@ -45,7 +45,7 @@
</emitters> </emitters>
</usingbygroup> </usingbygroup>
</rule> </rule>
<rule pattern="(ACCESS|ADD|ADDRESSES|AGGREGATE|ALIGNED|ALL|ALTER|ANALYSIS|AND|ANY|ARITY|ARN|ARRANGEMENT|ARRAY|AS|ASC|ASSERT|ASSUME|AT|AUCTION|AUTHORITY|AVAILABILITY|AVRO|AWS|BATCH|BEGIN|BETWEEN|BIGINT|BILLED|BODY|BOOLEAN|BOTH|BPCHAR|BROKEN|BROKER|BROKERS|BY|BYTES|CARDINALITY|CASCADE|CASE|CAST|CERTIFICATE|CHAIN|CHAINS|CHAR|CHARACTER|CHARACTERISTICS|CHECK|CLASS|CLIENT|CLOCK|CLOSE|CLUSTER|CLUSTERS|COALESCE|COLLATE|COLUMN|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPACTION|COMPATIBILITY|COMPRESSION|COMPUTE|COMPUTECTL|CONFIG|CONFLUENT|CONNECTION|CONNECTIONS|CONSTRAINT|CONTINUAL|COPY|COUNT|COUNTER|CREATE|CREATECLUSTER|CREATEDB|CREATEROLE|CREATION|CROSS|CSV|CURRENT|CURSOR|DATABASE|DATABASES|DATUMS|DAY|DAYS|DEALLOCATE|DEBEZIUM|DEBUG|DEBUGGING|DEC|DECIMAL|DECLARE|DECODING|DECORRELATED|DEFAULT|DEFAULTS|DELETE|DELIMITED|DELIMITER|DELTA|DESC|DETAILS|DISCARD|DISK|DISTINCT|DOC|DOT|DOUBLE|DROP|EAGER|ELEMENT|ELSE|ENABLE|END|ENDPOINT|ENFORCED|ENVELOPE|ERROR|ERRORS|ESCAPE|ESTIMATE|EVERY|EXCEPT|EXCLUDE|EXECUTE|EXISTS|EXPECTED|EXPLAIN|EXPOSE|EXPRESSIONS|EXTERNAL|EXTRACT|FACTOR|FALSE|FAST|FEATURES|FETCH|FIELDS|FILE|FILTER|FIRST|FIXPOINT|FLOAT|FOLLOWING|FOR|FOREIGN|FORMAT|FORWARD|FROM|FULL|FULLNAME|FUNCTION|FUSION|GENERATOR|GRANT|GREATEST|GROUP|GROUPS|HAVING|HEADER|HEADERS|HISTORY|HOLD|HOST|HOUR|HOURS|HUMANIZED|HYDRATION|ID|IDENTIFIERS|IDS|IF|IGNORE|ILIKE|IMPLEMENTATIONS|IMPORTED|IN|INCLUDE|INDEX|INDEXES|INFO|INHERIT|INLINE|INNER|INPUT|INSERT|INSIGHTS|INSPECT|INT|INTEGER|INTERNAL|INTERSECT|INTERVAL|INTO|INTROSPECTION|IS|ISNULL|ISOLATION|JOIN|JOINS|JSON|KAFKA|KEY|KEYS|LAST|LATERAL|LATEST|LEADING|LEAST|LEFT|LEGACY|LETREC|LEVEL|LIKE|LIMIT|LINEAR|LIST|LOAD|LOCAL|LOCALLY|LOG|LOGICAL|LOGIN|LOWERING|MANAGED|MANUAL|MAP|MARKETING|MATERIALIZE|MATERIALIZED|MAX|MECHANISMS|MEMBERSHIP|MESSAGE|METADATA|MINUTE|MINUTES|MODE|MONTH|MONTHS|MUTUALLY|MYSQL|NAME|NAMES|NATURAL|NEGATIVE|NEW|NEXT|NO|NOCREATECLUSTER|NOCREATEDB|NOCREATEROLE|NODE|NOINHERIT|NOLOGIN|NON|NONE|NOSUPERUSER|NOT|NOTICE|NOTICES|NULL|NULLIF|NULLS|OBJECTS|OF|OFFSET|ON|ONLY|OPERATOR|OPTIMIZED|OPTIMIZER|OPTIONS|OR|ORDER|ORDINALITY|OUTER|OVER|OWNED|OWNER|PARTITION|PARTITIONS|PASSWORD|PATH|PHYSICAL|PLAN|PLANS|PORT|POSITION|POSTGRES|PRECEDING|PRECISION|PREFIX|PREPARE|PRIMARY|PRIVATELINK|PRIVILEGES|PROGRESS|PROTOBUF|PROTOCOL|PUBLIC|PUBLICATION|PUSHDOWN|QUERY|QUOTE|RAISE|RANGE|RATE|RAW|READ|READY|REAL|REASSIGN|RECURSION|RECURSIVE|REDACTED|REDUCE|REFERENCE|REFERENCES|REFRESH|REGEX|REGION|REGISTRY|RENAME|REOPTIMIZE|REPEATABLE|REPLACE|REPLAN|REPLICA|REPLICAS|REPLICATION|RESET|RESPECT|RESTRICT|RETAIN|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLES|ROLLBACK|ROTATE|ROUNDS|ROW|ROWS|SASL|SCALE|SCHEDULE|SCHEMA|SCHEMAS|SECOND|SECONDS|SECRET|SECRETS|SECURITY|SEED|SELECT|SEQUENCES|SERIALIZABLE|SERVICE|SESSION|SET|SHARD|SHOW|SINK|SINKS|SIZE|SMALLINT|SNAPSHOT|SOME|SOURCE|SOURCES|SSH|SSL|START|STDIN|STDOUT|STORAGE|STORAGECTL|STRATEGY|STRICT|STRING|STRONG|SUBSCRIBE|SUBSOURCE|SUBSOURCES|SUBSTRING|SUBTREE|SUPERUSER|SWAP|SYNTAX|SYSTEM|TABLE|TABLES|TAIL|TASK|TEMP|TEMPORARY|TEXT|THEN|TICK|TIES|TIME|TIMELINE|TIMEOUT|TIMESTAMP|TIMESTAMPTZ|TIMING|TO|TOKEN|TOPIC|TPCH|TRACE|TRAILING|TRANSACTION|TRANSACTIONAL|TRIM|TRUE|TUNNEL|TYPE|TYPES|UNBOUNDED|UNCOMMITTED|UNION|UNIQUE|UNKNOWN|UNNEST|UNTIL|UP|UPDATE|UPSERT|URL|USAGE|USER|USERNAME|USERS|USING|VALIDATE|VALUE|VALUES|VARCHAR|VARIADIC|VARYING|VERSION|VIEW|VIEWS|WAIT|WARNING|WEBHOOK|WHEN|WHERE|WINDOW|WIRE|WITH|WITHIN|WITHOUT|WORK|WORKERS|WORKLOAD|WRITE|YEAR|YEARS|YUGABYTE|ZONE|ZONES)\b"> <rule pattern="(ABORT|ACCESS|ACTION|ADD|ADDED|ADDRESS|ADDRESSES|AFTER|AGGREGATE|AGGREGATION|ALIGNED|ALL|ALTER|ANALYSE|ANALYSIS|ANALYZE|AND|ANY|APPLY|ARITY|ARN|ARRANGED|ARRANGEMENT|ARRAY|AS|ASC|ASSERT|ASSUME|AT|AUCTION|AUTHORITY|AVAILABILITY|AVRO|AWS|BATCH|BEGIN|BETWEEN|BIGINT|BILLED|BODY|BOOLEAN|BOTH|BPCHAR|BROKEN|BROKER|BROKERS|BY|BYTES|CAPTURE|CARDINALITY|CASCADE|CASE|CAST|CATALOG|CERTIFICATE|CHAIN|CHAINS|CHAR|CHARACTER|CHARACTERISTICS|CHECK|CLASS|CLIENT|CLOCK|CLOSE|CLUSTER|CLUSTERS|COALESCE|COLLATE|COLUMN|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPACTION|COMPATIBILITY|COMPRESSION|COMPUTE|COMPUTECTL|CONFIG|CONFLUENT|CONNECTION|CONNECTIONS|CONSTRAINT|CONTINUAL|COPY|COUNT|COUNTER|CPU|CREATE|CREATECLUSTER|CREATEDB|CREATENETWORKPOLICY|CREATEROLE|CREATION|CREDENTIAL|CROSS|CSE|CSV|CURRENT|CURSOR|DATABASE|DATABASES|DATUMS|DAY|DAYS|DEALLOCATE|DEBEZIUM|DEBUG|DEBUGGING|DEC|DECIMAL|DECLARE|DECODING|DECORRELATED|DEFAULT|DEFAULTS|DELETE|DELIMITED|DELIMITER|DELTA|DESC|DETAILS|DIRECTION|DISCARD|DISK|DISTINCT|DOC|DOT|DOUBLE|DROP|EAGER|ELEMENT|ELSE|ENABLE|END|ENDPOINT|ENFORCED|ENVELOPE|EQUIVALENCES|ERROR|ERRORS|ESCAPE|ESTIMATE|EVERY|EXCEPT|EXCLUDE|EXECUTE|EXISTS|EXPECTED|EXPLAIN|EXPOSE|EXPRESSIONS|EXTERNAL|EXTRACT|FACTOR|FALSE|FAST|FEATURES|FETCH|FIELDS|FILE|FILES|FILTER|FIRST|FIXPOINT|FLOAT|FOLLOWING|FOR|FOREIGN|FORMAT|FORWARD|FROM|FULL|FULLNAME|FUNCTION|FUSION|GENERATOR|GRANT|GREATEST|GROUP|GROUPS|HAVING|HEADER|HEADERS|HINTS|HISTORY|HOLD|HOST|HOUR|HOURS|HUMANIZED|HYDRATION|ICEBERG|ID|IDENTIFIERS|IDS|IF|IGNORE|ILIKE|IMPLEMENTATIONS|IMPORTED|IN|INCLUDE|INDEX|INDEXES|INFO|INHERIT|INLINE|INNER|INPUT|INSERT|INSIGHTS|INSPECT|INSTANCE|INT|INTEGER|INTERNAL|INTERSECT|INTERVAL|INTO|INTROSPECTION|IS|ISNULL|ISOLATION|JOIN|JOINS|JSON|KAFKA|KEY|KEYS|LAST|LATERAL|LATEST|LEADING|LEAST|LEFT|LEGACY|LETREC|LEVEL|LIKE|LIMIT|LINEAR|LIST|LOAD|LOCAL|LOCALLY|LOG|LOGICAL|LOGIN|LOWERING|MANAGED|MANUAL|MAP|MARKETING|MATERIALIZE|MATERIALIZED|MAX|MECHANISMS|MEMBERSHIP|MEMORY|MESSAGE|METADATA|MINUTE|MINUTES|MODE|MONTH|MONTHS|MUTUALLY|MYSQL|NAME|NAMES|NAMESPACE|NATURAL|NEGATIVE|NETWORK|NEW|NEXT|NFC|NFD|NFKC|NFKD|NO|NOCREATECLUSTER|NOCREATEDB|NOCREATEROLE|NODE|NOINHERIT|NOLOGIN|NON|NONE|NORMALIZE|NOSUPERUSER|NOT|NOTICE|NOTICES|NULL|NULLIF|NULLS|OBJECTS|OF|OFFSET|ON|ONLY|OPERATOR|OPTIMIZED|OPTIMIZER|OPTIONS|OR|ORDER|ORDINALITY|OUTER|OVER|OWNED|OWNER|PARTITION|PARTITIONS|PASSWORD|PATH|PATTERN|PHYSICAL|PLAN|PLANS|POLICIES|POLICY|PORT|POSITION|POSTGRES|PRECEDING|PRECISION|PREFIX|PREPARE|PRIMARY|PRIORITIZE|PRIVATELINK|PRIVILEGES|PROGRESS|PROJECTION|PROTOBUF|PROTOCOL|PUBLIC|PUBLICATION|PUSHDOWN|QUALIFY|QUERY|QUOTE|RAISE|RANGE|RATE|RAW|READ|READY|REAL|REASSIGN|RECURSION|RECURSIVE|REDACTED|REDUCE|REFERENCE|REFERENCES|REFRESH|REGEX|REGION|REGISTRY|RELATION|RENAME|REOPTIMIZE|REPEATABLE|REPLACE|REPLACEMENT|REPLAN|REPLICA|REPLICAS|REPLICATION|RESET|RESPECT|RESTRICT|RETAIN|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLES|ROLLBACK|ROTATE|ROUNDS|ROW|ROWS|RULES|SASL|SCALE|SCHEDULE|SCHEMA|SCHEMAS|SCOPE|SECOND|SECONDS|SECRET|SECRETS|SECURITY|SEED|SELECT|SEQUENCES|SERIALIZABLE|SERVER|SERVICE|SESSION|SET|SHARD|SHOW|SINK|SINKS|SIZE|SKEW|SMALLINT|SNAPSHOT|SOME|SOURCE|SOURCES|SQL|SSH|SSL|START|STDIN|STDOUT|STORAGE|STORAGECTL|STRATEGY|STRICT|STRING|STRONG|SUBSCRIBE|SUBSOURCE|SUBSOURCES|SUBSTRING|SUBTREE|SUPERUSER|SWAP|SYNTAX|SYSTEM|TABLE|TABLES|TAIL|TASK|TASKS|TEMP|TEMPORARY|TEXT|THEN|TICK|TIES|TIME|TIMEOUT|TIMESTAMP|TIMESTAMPTZ|TIMING|TO|TOKEN|TOPIC|TPCH|TRACE|TRAILING|TRANSACTION|TRANSACTIONAL|TRANSFORM|TRIM|TRUE|TUNNEL|TYPE|TYPES|UNBOUNDED|UNCOMMITTED|UNION|UNIQUE|UNKNOWN|UNNEST|UNTIL|UP|UPDATE|UPSERT|URL|USAGE|USER|USERNAME|USERS|USING|VALIDATE|VALUE|VALUES|VARCHAR|VARIADIC|VARYING|VERBOSE|VERSION|VIEW|VIEWS|WAIT|WAREHOUSE|WARNING|WEBHOOK|WHEN|WHERE|WHILE|WINDOW|WIRE|WITH|WITHIN|WITHOUT|WORK|WORKERS|WORKLOAD|WRITE|YEAR|YEARS|ZONE|ZONES)\b">
<token type="Keyword" /> <token type="Keyword" />
</rule> </rule>
<rule pattern="[+*/&lt;&gt;=~!@#%^&amp;|`?-]+"> <rule pattern="[+*/&lt;&gt;=~!@#%^&amp;|`?-]+">

View File

@@ -4,6 +4,7 @@
<alias>meson</alias> <alias>meson</alias>
<alias>meson.build</alias> <alias>meson.build</alias>
<filename>meson.build</filename> <filename>meson.build</filename>
<filename>meson.options</filename>
<filename>meson_options.txt</filename> <filename>meson_options.txt</filename>
<mime_type>text/x-meson</mime_type> <mime_type>text/x-meson</mime_type>
</config> </config>

View File

@@ -38,7 +38,7 @@
<rule pattern="\s+"> <rule pattern="\s+">
<token type="TextWhitespace"/> <token type="TextWhitespace"/>
</rule> </rule>
<rule pattern="(#|--\s+).*\n?"> <rule pattern="(#|--).*\n?">
<token type="CommentSingle"/> <token type="CommentSingle"/>
</rule> </rule>
<rule pattern="/\*"> <rule pattern="/\*">

View File

@@ -54,7 +54,7 @@
<rule pattern="\\([nrt&#34;$\\]|[0-7]{1,3}|x[0-9a-f]{1,2})"> <rule pattern="\\([nrt&#34;$\\]|[0-7]{1,3}|x[0-9a-f]{1,2})">
<token type="LiteralStringEscape"/> <token type="LiteralStringEscape"/>
</rule> </rule>
<rule pattern="\$(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*(\[\S+?\]|-&gt;(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)?"> <rule pattern="\$(?:[_a-z]|[^\x00-\x7f])(?:\w|[^\x00-\x7f])*(\[\S+?\]|-&gt;(?:[_a-z]|[^\x00-\x7f])(?:\w|[^\x00-\x7f])*)?">
<token type="LiteralStringInterpol"/> <token type="LiteralStringInterpol"/>
</rule> </rule>
<rule pattern="(\{\$\{)(.*?)(\}\})"> <rule pattern="(\{\$\{)(.*?)(\}\})">
@@ -82,12 +82,46 @@
<token type="LiteralStringDouble"/> <token type="LiteralStringDouble"/>
</rule> </rule>
</state> </state>
<state name="variablevariable">
<rule pattern="\}">
<token type="NameVariable"/>
<pop depth="1"/>
</rule>
<rule>
<include state="root"/>
</rule>
</state>
<state name="attribute">
<rule pattern="\]">
<token type="Punctuation"/>
<pop depth="1"/>
</rule>
<rule pattern="\(">
<token type="Punctuation"/>
<push state="attributeparams"/>
</rule>
<rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
<token type="NameDecorator"/>
</rule>
<rule>
<include state="root"/>
</rule>
</state>
<state name="attributeparams">
<rule pattern="\)">
<token type="Punctuation"/>
<pop depth="1"/>
</rule>
<rule>
<include state="root"/>
</rule>
</state>
<state name="root"> <state name="root">
<rule pattern="\?&gt;"> <rule pattern="\?&gt;">
<token type="CommentPreproc"/> <token type="CommentPreproc"/>
<pop depth="1"/> <pop depth="1"/>
</rule> </rule>
<rule pattern="(&lt;&lt;&lt;)([\&#39;&#34;]?)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)(\2\n.*?\n\s*)(\3)(;?)(\n)"> <rule pattern="(&lt;&lt;&lt;)([\&#39;&#34;]?)((?:[_a-z]|[^\x00-\x7f])(?:\w|[^\x00-\x7f])*)(\2\n.*?\n\s*)(\3)(;?)(\n)">
<bygroups> <bygroups>
<token type="LiteralString"/> <token type="LiteralString"/>
<token type="LiteralString"/> <token type="LiteralString"/>
@@ -101,6 +135,10 @@
<rule pattern="\s+"> <rule pattern="\s+">
<token type="Text"/> <token type="Text"/>
</rule> </rule>
<rule pattern="#\[">
<token type="Punctuation"/>
<push state="attribute"/>
</rule>
<rule pattern="#.*?\n"> <rule pattern="#.*?\n">
<token type="CommentSingle"/> <token type="CommentSingle"/>
</rule> </rule>
@@ -116,7 +154,7 @@
<rule pattern="/\*.*?\*/"> <rule pattern="/\*.*?\*/">
<token type="CommentMultiline"/> <token type="CommentMultiline"/>
</rule> </rule>
<rule pattern="(-&gt;|::)(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)"> <rule pattern="(-&gt;|::)(\s*)((?:[_a-z]|[^\x00-\x7f])(?:\w|[^\x00-\x7f])*)">
<bygroups> <bygroups>
<token type="Operator"/> <token type="Operator"/>
<token type="Text"/> <token type="Text"/>
@@ -132,6 +170,13 @@
<rule pattern="[\[\]{}();,]+"> <rule pattern="[\[\]{}();,]+">
<token type="Punctuation"/> <token type="Punctuation"/>
</rule> </rule>
<rule pattern="(new)(\s+)(class)\b">
<bygroups>
<token type="Keyword"/>
<token type="Text"/>
<token type="Keyword"/>
</bygroups>
</rule>
<rule pattern="(class)(\s+)"> <rule pattern="(class)(\s+)">
<bygroups> <bygroups>
<token type="Keyword"/> <token type="Keyword"/>
@@ -161,7 +206,7 @@
<token type="NameConstant"/> <token type="NameConstant"/>
</bygroups> </bygroups>
</rule> </rule>
<rule pattern="(and|E_PARSE|old_function|E_ERROR|or|as|E_WARNING|parent|eval|PHP_OS|break|exit|case|extends|PHP_VERSION|cfunction|FALSE|print|for|require|continue|foreach|require_once|declare|return|default|static|do|switch|die|stdClass|echo|else|TRUE|elseif|var|empty|if|xor|enddeclare|include|virtual|endfor|include_once|while|endforeach|global|endif|list|endswitch|new|endwhile|not|array|E_ALL|NULL|final|php_user_filter|interface|implements|public|private|protected|abstract|clone|try|catch|throw|this|use|namespace|trait|yield|finally)\b"> <rule pattern="(and|E_PARSE|old_function|E_ERROR|or|as|E_WARNING|parent|eval|PHP_OS|break|exit|case|extends|PHP_VERSION|cfunction|FALSE|print|for|require|continue|foreach|require_once|declare|return|default|static|do|switch|die|stdClass|echo|else|TRUE|elseif|var|empty|if|xor|enddeclare|include|virtual|endfor|include_once|while|endforeach|global|endif|list|endswitch|new|endwhile|not|array|E_ALL|NULL|final|php_user_filter|interface|implements|public|private|protected|abstract|clone|try|catch|throw|this|use|namespace|trait|yield|finally|match)\b">
<token type="Keyword"/> <token type="Keyword"/>
</rule> </rule>
<rule pattern="(true|false|null)\b"> <rule pattern="(true|false|null)\b">
@@ -170,8 +215,9 @@
<rule> <rule>
<include state="magicconstants"/> <include state="magicconstants"/>
</rule> </rule>
<rule pattern="\$\{\$+(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*\}"> <rule pattern="\$\{">
<token type="NameVariable"/> <token type="NameVariable"/>
<push state="variablevariable"/>
</rule> </rule>
<rule pattern="\$+(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*"> <rule pattern="\$+(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
<token type="NameVariable"/> <token type="NameVariable"/>
@@ -185,7 +231,7 @@
<rule pattern="\d+e[+-]?[0-9]+"> <rule pattern="\d+e[+-]?[0-9]+">
<token type="LiteralNumberFloat"/> <token type="LiteralNumberFloat"/>
</rule> </rule>
<rule pattern="0[0-7]+"> <rule pattern="0o?[0-7_]+">
<token type="LiteralNumberOct"/> <token type="LiteralNumberOct"/>
</rule> </rule>
<rule pattern="0x[a-f0-9_]+"> <rule pattern="0x[a-f0-9_]+">
@@ -194,7 +240,7 @@
<rule pattern="\d[\d_]*"> <rule pattern="\d[\d_]*">
<token type="LiteralNumberInteger"/> <token type="LiteralNumberInteger"/>
</rule> </rule>
<rule pattern="0b[01]+"> <rule pattern="0b[01_]+">
<token type="LiteralNumberBin"/> <token type="LiteralNumberBin"/>
</rule> </rule>
<rule pattern="&#39;([^&#39;\\]*(?:\\.[^&#39;\\]*)*)&#39;"> <rule pattern="&#39;([^&#39;\\]*(?:\\.[^&#39;\\]*)*)&#39;">

View File

@@ -0,0 +1,115 @@
<lexer>
<config>
<name>scdoc</name>
<alias>scdoc</alias>
<filename>*.scd</filename>
<filename>*.scdoc</filename>
</config>
<rules>
<state name="root">
<rule pattern="(?m)^; .*$">
<token type="Comment"/>
</rule>
<rule pattern="(?m)^([A-Z][A-Z0-9_-]*)(\()([0-9]+)(\))(.*)$">
<bygroups>
<token type="NameFunction"/>
<token type="Punctuation"/>
<token type="LiteralNumber"/>
<token type="Punctuation"/>
<token type="Text"/>
</bygroups>
</rule>
<rule pattern="(?m)^(##)( +)(.+)$">
<bygroups>
<token type="GenericSubheading"/>
<token type="Text"/>
<token type="Text"/>
</bygroups>
</rule>
<rule pattern="(?m)^(#)( +)(.+)$">
<bygroups>
<token type="GenericHeading"/>
<token type="Text"/>
<token type="GenericStrong"/>
</bygroups>
</rule>
<rule pattern="(?m)^```$">
<token type="LiteralStringBacktick"/>
<push state="literal_block"/>
</rule>
<rule pattern="(?m)^(\s*)(- )(.*)$">
<bygroups>
<token type="Text"/>
<token type="Keyword"/>
<usingself state="inline"/>
</bygroups>
</rule>
<rule pattern="(?m)^(\s*)(\. )(.*)$">
<bygroups>
<token type="Text"/>
<token type="Keyword"/>
<usingself state="inline"/>
</bygroups>
</rule>
<rule pattern="(?m)^\t[^ \t].*$">
<token type="LiteralStringBacktick"/>
</rule>
<rule pattern="(?m)^\t+$">
<token type="LiteralStringBacktick"/>
</rule>
<rule pattern="(?m)^(\s*)([|:\[\]].*)$">
<bygroups>
<token type="Text"/>
<token type="Punctuation"/>
</bygroups>
</rule>
<rule pattern="(?m)^(.*)(\+\+)$">
<bygroups>
<usingself state="inline"/>
<token type="Operator"/>
</bygroups>
</rule>
<rule>
<include state="inline"/>
</rule>
</state>
<state name="literal_block">
<rule pattern="(?m)^```$">
<token type="LiteralStringBacktick"/>
<pop depth="1"/>
</rule>
<rule pattern=".*\n?">
<token type="LiteralStringBacktick"/>
</rule>
</state>
<state name="inline">
<rule pattern="\\.">
<token type="LiteralStringEscape"/>
</rule>
<rule pattern="(\*)([^*\n]+)(\*)">
<bygroups>
<token type="Punctuation"/>
<token type="GenericStrong"/>
<token type="Punctuation"/>
</bygroups>
</rule>
<rule pattern="(_)([^_\n]+?)(_)((?=\W|\n|$))">
<bygroups>
<token type="Punctuation"/>
<token type="GenericUnderline"/>
<token type="Punctuation"/>
<token type="Text"/>
</bygroups>
</rule>
<rule pattern="[^*_\\\n]+">
<token type="Text"/>
</rule>
<rule pattern="\n">
<token type="Text"/>
</rule>
<rule pattern=".">
<token type="Text"/>
</rule>
</state>
</rules>
</lexer>

View File

@@ -0,0 +1,292 @@
<lexer>
<config>
<name>Spade</name>
<alias>spade</alias>
<filename>*.spade</filename>
<mime_type>text/spade</mime_type>
<mime_type>text/x-spade</mime_type>
<ensure_nl>true</ensure_nl>
</config>
<rules>
<state name="modname">
<rule pattern="\s+">
<token type="Text"/>
</rule>
<rule pattern="[a-zA-Z_]\w*">
<token type="NameNamespace"/>
<pop depth="1"/>
</rule>
<rule>
<pop depth="1"/>
</rule>
</state>
<state name="number_lit">
<rule pattern="[ui]\d*">
<token type="Keyword"/>
<pop depth="1"/>
</rule>
<rule>
<pop depth="1"/>
</rule>
</state>
<state name="attribute_common">
<rule pattern="&#34;">
<token type="LiteralString"/>
<push state="string"/>
</rule>
<rule pattern="\[">
<token type="CommentPreproc"/>
<push state="attribute["/>
</rule>
</state>
<state name="comment">
<rule pattern="[^*/]+">
<token type="CommentMultiline"/>
</rule>
<rule pattern="/\*">
<token type="CommentMultiline"/>
<push/>
</rule>
<rule pattern="\*/">
<token type="CommentMultiline"/>
<pop depth="1"/>
</rule>
<rule pattern="[*/]">
<token type="CommentMultiline"/>
</rule>
</state>
<state name="doccomment">
<rule pattern="[^*/]+">
<token type="LiteralStringDoc"/>
</rule>
<rule pattern="/\*">
<token type="LiteralStringDoc"/>
<push/>
</rule>
<rule pattern="\*/">
<token type="LiteralStringDoc"/>
<pop depth="1"/>
</rule>
<rule pattern="[*/]">
<token type="LiteralStringDoc"/>
</rule>
</state>
<state name="funcname">
<rule pattern="\s+">
<token type="Text"/>
</rule>
<rule pattern="[a-zA-Z_]\w*">
<token type="NameFunction"/>
<pop depth="1"/>
</rule>
<rule>
<pop depth="1"/>
</rule>
</state>
<state name="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="[^\\&#34;]+">
<token type="LiteralString"/>
</rule>
<rule pattern="\\">
<token type="LiteralString"/>
</rule>
</state>
<state name="root">
<rule pattern="#![^[\r\n].*$">
<token type="CommentPreproc"/>
</rule>
<rule>
<push state="base"/>
</rule>
</state>
<state name="attribute[">
<rule>
<include state="attribute_common"/>
</rule>
<rule pattern="\]">
<token type="CommentPreproc"/>
<pop depth="1"/>
</rule>
<rule pattern="[^&#34;\]\[]+">
<token type="CommentPreproc"/>
</rule>
</state>
<state name="base">
<rule pattern="\n">
<token type="TextWhitespace"/>
</rule>
<rule pattern="\s+">
<token type="TextWhitespace"/>
</rule>
<rule pattern="//!.*?\n">
<token type="LiteralStringDoc"/>
</rule>
<rule pattern="///(\n|[^/].*?\n)">
<token type="LiteralStringDoc"/>
</rule>
<rule pattern="//(.*?)\n">
<token type="CommentSingle"/>
</rule>
<rule pattern="/\*\*(\n|[^/*])">
<token type="LiteralStringDoc"/>
<push state="doccomment"/>
</rule>
<rule pattern="/\*!">
<token type="LiteralStringDoc"/>
<push state="doccomment"/>
</rule>
<rule pattern="/\*">
<token type="CommentMultiline"/>
<push state="comment"/>
</rule>
<rule pattern="&#34;">
<token type="LiteralString"/>
<push state="string"/>
</rule>
<rule pattern="\$([a-zA-Z_]\w*|\(,?|\),?|,?)">
<token type="CommentPreproc"/>
</rule>
<rule pattern="(reg|decl|inst|reset|initial|if|else|match|set|pipeline|stage|entity|trait|impl|for|fn|port|mod|use|as|assert|mut|inv|pub|where|gen)\b">
<token type="Keyword"/>
</rule>
<rule pattern="(true|false)\b">
<token type="KeywordConstant"/>
</rule>
<rule pattern="self\b">
<token type="NameBuiltinPseudo"/>
</rule>
<rule pattern="mod\b">
<token type="Keyword"/>
<push state="modname"/>
</rule>
<rule pattern="let\b">
<token type="KeywordDeclaration"/>
</rule>
<rule pattern="fn\b">
<token type="Keyword"/>
<push state="funcname"/>
</rule>
<rule pattern="(struct|enum)\b">
<token type="Keyword"/>
<push state="typename"/>
</rule>
<rule pattern="(default)(\s+)(type|fn)\b">
<bygroups>
<token type="Keyword"/>
<token type="Text"/>
<token type="Keyword"/>
</bygroups>
</rule>
<rule pattern="(int|uint|bool|clock|inout)\b">
<token type="KeywordType"/>
</rule>
<rule pattern="[sS]elf\b">
<token type="NameBuiltinPseudo"/>
</rule>
<rule pattern="(Option|Fn|Entity|Pipeline)\b">
<token type="NameBuiltin"/>
</rule>
<rule pattern="::\b">
<token type="Text"/>
</rule>
<rule pattern="(?::|-&gt;)">
<token type="Text"/>
<push state="typename"/>
</rule>
<rule pattern="&#39;[A-z0-9_]+">
<token type="NameLabel"/>
</rule>
<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|.)&#39;)">
<bygroups>
<token type="LiteralStringAffix"/>
<token type="LiteralStringChar"/>
</bygroups>
</rule>
<rule pattern="0b[01_]+">
<token type="LiteralNumberBin"/>
<push state="number_lit"/>
</rule>
<rule pattern="0[xX][0-9a-fA-F_]+">
<token type="LiteralNumberHex"/>
<push state="number_lit"/>
</rule>
<rule pattern="[0-9][0-9_]*">
<token type="LiteralNumberInteger"/>
<push state="number_lit"/>
</rule>
<rule pattern="\.\.=?">
<token type="Operator"/>
</rule>
<rule pattern="`[A-z0-9_]+`">
<token type="Operator"/>
</rule>
<rule pattern="[{}()\[\],.;]">
<token type="Punctuation"/>
</rule>
<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="([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>
<rule pattern="r#[a-zA-Z_]\w*">
<token type="Name"/>
</rule>
<rule pattern="#!?\[">
<token type="CommentPreproc"/>
<push state="attribute["/>
</rule>
<rule pattern="#">
<token type="Text"/>
</rule>
</state>
<state name="typename">
<rule pattern="\s+">
<token type="Text"/>
</rule>
<rule pattern="&amp;">
<token type="KeywordPseudo"/>
</rule>
<rule pattern="&#39;(static|_)">
<token type="NameBuiltin"/>
</rule>
<rule pattern="&#39;">
<token type="NameAttribute"/>
<push state="lifetime"/>
</rule>
<rule pattern="(Option|Fn|Entity|Pipeline)\b">
<token type="NameBuiltin"/>
</rule>
<rule pattern="(int|uint|bool|clock|inout)\b">
<token type="KeywordType"/>
</rule>
<rule pattern="[a-zA-Z_]\w*">
<token type="NameClass"/>
<pop depth="1"/>
</rule>
<rule>
<pop depth="1"/>
</rule>
</state>
</rules>
</lexer>

View File

@@ -226,7 +226,7 @@
<push state="slashstartsregex" /> <push state="slashstartsregex" />
</rule> </rule>
<rule <rule
pattern="(abstract|async|boolean|class|const|debugger|enum|export|extends|from|get|global|goto|implements|import|interface|namespace|package|private|protected|public|readonly|require|set|static|super|type)\b" pattern="(abstract|async|boolean|class|const|debugger|enum|export|extends|from|get|global|goto|implements|import|interface|namespace|package|private|protected|public|readonly|require|set|static|super|type|using)\b"
> >
<token type="KeywordReserved" /> <token type="KeywordReserved" />
</rule> </rule>

View File

@@ -10,6 +10,7 @@
<filename>*.wsdl</filename> <filename>*.wsdl</filename>
<filename>*.wsf</filename> <filename>*.wsf</filename>
<filename>*.svg</filename> <filename>*.svg</filename>
<filename>*.qrc</filename>
<filename>*.csproj</filename> <filename>*.csproj</filename>
<filename>*.vcxproj</filename> <filename>*.vcxproj</filename>
<filename>*.fsproj</filename> <filename>*.fsproj</filename>

29
vendor/github.com/alecthomas/chroma/v2/lexers/erb.go generated vendored Normal file
View File

@@ -0,0 +1,29 @@
package lexers
import (
"strings"
. "github.com/alecthomas/chroma/v2" // nolint
)
// ERB lexer is Ruby embedded in HTML.
var ERB = Register(DelegatingLexer(HTML, MustNewXMLLexer(
embedded,
"embedded/erb.xml",
).SetConfig(
&Config{
Name: "ERB",
Aliases: []string{"erb", "html+erb", "html+ruby", "rhtml"},
Filenames: []string{"*.erb", "*.html.erb", "*.xml.erb", "*.rhtml"},
MimeTypes: []string{"application/x-ruby-templating"},
DotAll: true,
},
).SetAnalyser(func(text string) float32 {
if strings.Contains(text, "<%=") && strings.Contains(text, "%>") {
return 0.4
}
if strings.Contains(text, "<%") {
return 0.1
}
return 0.0
})))

View File

@@ -308,6 +308,7 @@ type RegexLexer struct {
rules map[string][]*CompiledRule rules map[string][]*CompiledRule
fetchRulesFunc func() (Rules, error) fetchRulesFunc func() (Rules, error)
compileOnce sync.Once compileOnce sync.Once
compileError error
} }
func (r *RegexLexer) String() string { func (r *RegexLexer) String() string {
@@ -446,8 +447,11 @@ func (r *RegexLexer) needRules() error {
var err error var err error
if r.fetchRulesFunc != nil { if r.fetchRulesFunc != nil {
r.compileOnce.Do(func() { r.compileOnce.Do(func() {
err = r.fetchRules() r.compileError = r.fetchRules()
}) })
if r.compileError != nil {
return r.compileError
}
} }
if err := r.maybeCompile(); err != nil { if err := r.maybeCompile(); err != nil {
return err return err

View File

@@ -4,6 +4,7 @@ import (
"embed" "embed"
"io/fs" "io/fs"
"sort" "sort"
"strings"
"github.com/alecthomas/chroma/v2" "github.com/alecthomas/chroma/v2"
) )
@@ -31,7 +32,7 @@ var Registry = func() map[string]*chroma.Style {
if err != nil { if err != nil {
panic(err) panic(err)
} }
registry[style.Name] = style registry[strings.ToLower(style.Name)] = style
_ = r.Close() _ = r.Close()
} }
return registry return registry
@@ -42,7 +43,7 @@ var Fallback = Registry["swapoff"]
// Register a chroma.Style. // Register a chroma.Style.
func Register(style *chroma.Style) *chroma.Style { func Register(style *chroma.Style) *chroma.Style {
Registry[style.Name] = style Registry[strings.ToLower(style.Name)] = style
return style return style
} }
@@ -58,7 +59,7 @@ func Names() []string {
// Get named style, or Fallback. // Get named style, or Fallback.
func Get(name string) *chroma.Style { func Get(name string) *chroma.Style {
if style, ok := Registry[name]; ok { if style, ok := Registry[strings.ToLower(name)]; ok {
return style return style
} }
return Fallback return Fallback

View File

@@ -31,6 +31,9 @@ var (
HrDark = Registry["hrdark"] HrDark = Registry["hrdark"]
HrHighContrast = Registry["hr_high_contrast"] HrHighContrast = Registry["hr_high_contrast"]
Igor = Registry["igor"] Igor = Registry["igor"]
KanagawaDragon = Registry["kanagawa-dragon"]
KanagawaLotus = Registry["kanagawa-lotus"]
KanagawaWave = Registry["kanagawa-wave"]
Lovelace = Registry["lovelace"] Lovelace = Registry["lovelace"]
Manni = Registry["manni"] Manni = Registry["manni"]
ModusOperandi = Registry["modus-operandi"] ModusOperandi = Registry["modus-operandi"]

View File

@@ -0,0 +1,83 @@
<style name="darcula">
<entry type="Other" style="#A9B7C6"/>
<entry type="Error" style="#FF6B68"/>
<entry type="Background" style="bg:#2B2B2B"/>
<entry type="Keyword" style="#CC7832"/>
<entry type="KeywordConstant" style="#CC7832"/>
<entry type="KeywordDeclaration" style="#CC7832"/>
<entry type="KeywordNamespace" style="#CC7832"/>
<entry type="KeywordPseudo" style="#CC7832"/>
<entry type="KeywordReserved" style="#CC7832"/>
<entry type="KeywordType" style="#CC7832"/>
<entry type="Name" style="#A9B7C6"/>
<entry type="NameAttribute" style="#9876AA"/>
<entry type="NameBuiltin" style="#A9B7C6"/>
<entry type="NameBuiltinPseudo" style="#A9B7C6"/>
<entry type="NameClass" style="#A9B7C6"/>
<entry type="NameConstant" style="#9876AA"/>
<entry type="NameDecorator" style="#BBB529"/>
<entry type="NameEntity" style="#A9B7C6"/>
<entry type="NameException" style="#A9B7C6"/>
<entry type="NameFunction" style="#FFC66D"/>
<entry type="NameLabel" style="#A9B7C6"/>
<entry type="NameNamespace" style="#A9B7C6"/>
<entry type="NameOther" style="#A9B7C6"/>
<entry type="NameTag" style="#E8BF6A"/>
<entry type="NameVariable" style="#A9B7C6"/>
<entry type="NameVariableClass" style="#A9B7C6"/>
<entry type="NameVariableGlobal" style="#9876AA"/>
<entry type="NameVariableInstance" style="#A9B7C6"/>
<entry type="Literal" style="#A9B7C6"/>
<entry type="LiteralDate" style="#A9B7C6"/>
<entry type="LiteralString" style="#6A8759"/>
<entry type="LiteralStringBacktick" style="#6A8759"/>
<entry type="LiteralStringChar" style="#6A8759"/>
<entry type="LiteralStringDoc" style="#6A8759"/>
<entry type="LiteralStringDouble" style="#6A8759"/>
<entry type="LiteralStringEscape" style="#CC7832"/>
<entry type="LiteralStringHeredoc" style="#6A8759"/>
<entry type="LiteralStringInterpol" style="#6A8759"/>
<entry type="LiteralStringOther" style="#6A8759"/>
<entry type="LiteralStringRegex" style="#6A8759"/>
<entry type="LiteralStringSingle" style="#6A8759"/>
<entry type="LiteralStringSymbol" style="#6A8759"/>
<entry type="LiteralNumber" style="#6897BB"/>
<entry type="LiteralNumberBin" style="#6897BB"/>
<entry type="LiteralNumberFloat" style="#6897BB"/>
<entry type="LiteralNumberHex" style="#6897BB"/>
<entry type="LiteralNumberInteger" style="#6897BB"/>
<entry type="LiteralNumberIntegerLong" style="#6897BB"/>
<entry type="LiteralNumberOct" style="#6897BB"/>
<entry type="Operator" style="#A9B7C6"/>
<entry type="OperatorWord" style="#CC7832"/>
<entry type="Punctuation" style="#A9B7C6"/>
<entry type="Comment" style="#808080"/>
<entry type="CommentHashbang" style="#808080"/>
<entry type="CommentMultiline" style="#808080"/>
<entry type="CommentSingle" style="#808080"/>
<entry type="CommentSpecial" style="#808080"/>
<entry type="CommentPreproc" style="#BBB529"/>
<entry type="Generic" style="#A9B7C6"/>
<entry type="GenericDeleted" style="#CC7832"/>
<entry type="GenericEmph" style="italic #A9B7C6"/>
<entry type="GenericError" style="#FF6B68"/>
<entry type="GenericHeading" style="bold #A9B7C6"/>
<entry type="GenericInserted" style="#6A8759"/>
<entry type="GenericOutput" style="#606366"/>
<entry type="GenericPrompt" style="#A9B7C6"/>
<entry type="GenericStrong" style="bold #A9B7C6"/>
<entry type="GenericSubheading" style="bold #A9B7C6"/>
<entry type="GenericTraceback" style="#FF6B68"/>
<entry type="GenericUnderline" style="underline"/>
<entry type="Text" style="#A9B7C6"/>
<entry type="TextWhitespace" style="#A9B7C6"/>
</style>

View File

@@ -15,6 +15,7 @@
<entry type="NameFunction" style="bold #d2a8ff"/> <entry type="NameFunction" style="bold #d2a8ff"/>
<entry type="NameLabel" style="bold #79c0ff"/> <entry type="NameLabel" style="bold #79c0ff"/>
<entry type="NameNamespace" style="#ff7b72"/> <entry type="NameNamespace" style="#ff7b72"/>
<entry type="NameOther" style="#e6edf3"/>
<entry type="NameProperty" style="#79c0ff"/> <entry type="NameProperty" style="#79c0ff"/>
<entry type="NameTag" style="#7ee787"/> <entry type="NameTag" style="#7ee787"/>
<entry type="NameVariable" style="#79c0ff"/> <entry type="NameVariable" style="#79c0ff"/>

View File

@@ -0,0 +1,83 @@
<style name="kanagawa-dragon">
<entry type="Background" style="bg:#181616 #c5c9c5" />
<entry type="CodeLine" style="#c5c9c5" />
<entry type="Error" style="#e82424" />
<entry type="Other" style="#c5c9c5" />
<entry type="LineTableTD" style="" />
<entry type="LineTable" style="" />
<entry type="LineHighlight" style="bg:#393836" />
<entry type="LineNumbersTable" style="#625e5a" />
<entry type="LineNumbers" style="#625e5a" />
<entry type="Keyword" style="#8992a7" />
<entry type="KeywordReserved" style="#8992a7" />
<entry type="KeywordPseudo" style="#8992a7" />
<entry type="KeywordConstant" style="#b6927b" />
<entry type="KeywordDeclaration" style="#8992a7" />
<entry type="KeywordNamespace" style="#c4b28a" />
<entry type="KeywordType" style="#8ea4a2" />
<entry type="Name" style="#c5c9c5" />
<entry type="NameClass" style="#8ea4a2" />
<entry type="NameConstant" style="#b6927b" />
<entry type="NameDecorator" style="bold #b6927b" />
<entry type="NameEntity" style="#c4b28a" />
<entry type="NameException" style="#b6927b" />
<entry type="NameFunction" style="#8ba4b0" />
<entry type="NameFunctionMagic" style="#8ba4b0" />
<entry type="NameLabel" style="#949fb5" />
<entry type="NameNamespace" style="#c4b28a" />
<entry type="NameProperty" style="#c4b28a" />
<entry type="NameTag" style="#8ba4b0" />
<entry type="NameVariable" style="#c5c9c5" />
<entry type="NameVariableClass" style="#c5c9c5" />
<entry type="NameVariableGlobal" style="#c5c9c5" />
<entry type="NameVariableInstance" style="#c5c9c5" />
<entry type="NameVariableMagic" style="#c5c9c5" />
<entry type="NameAttribute" style="#c4b28a" />
<entry type="NameBuiltin" style="#c4746e" />
<entry type="NameBuiltinPseudo" style="#c4746e" />
<entry type="NameOther" style="#c5c9c5" />
<entry type="Literal" style="#c5c9c5" />
<entry type="LiteralDate" style="#c5c9c5" />
<entry type="LiteralString" style="#8a9a7b" />
<entry type="LiteralStringChar" style="#8a9a7b" />
<entry type="LiteralStringSingle" style="#8a9a7b" />
<entry type="LiteralStringDouble" style="#8a9a7b" />
<entry type="LiteralStringBacktick" style="#8a9a7b" />
<entry type="LiteralStringOther" style="#8a9a7b" />
<entry type="LiteralStringSymbol" style="#8a9a7b" />
<entry type="LiteralStringInterpol" style="#949fb5" />
<entry type="LiteralStringAffix" style="#c4746e" />
<entry type="LiteralStringDelimiter" style="#949fb5" />
<entry type="LiteralStringEscape" style="#c4746e" />
<entry type="LiteralStringRegex" style="#c4746e" />
<entry type="LiteralStringDoc" style="#737c73" />
<entry type="LiteralStringHeredoc" style="#737c73" />
<entry type="LiteralNumber" style="#a292a3" />
<entry type="LiteralNumberBin" style="#a292a3" />
<entry type="LiteralNumberHex" style="#a292a3" />
<entry type="LiteralNumberInteger" style="#a292a3" />
<entry type="LiteralNumberFloat" style="#a292a3" />
<entry type="LiteralNumberIntegerLong" style="#a292a3" />
<entry type="LiteralNumberOct" style="#a292a3" />
<entry type="Operator" style="bold #c4746e" />
<entry type="OperatorWord" style="bold #c4746e" />
<entry type="Comment" style="italic #737c73" />
<entry type="CommentSingle" style="italic #737c73" />
<entry type="CommentMultiline" style="italic #737c73" />
<entry type="CommentSpecial" style="italic #737c73" />
<entry type="CommentHashbang" style="italic #737c73" />
<entry type="CommentPreproc" style="italic #c4746e" />
<entry type="CommentPreprocFile" style="bold #c4746e" />
<entry type="Generic" style="#c5c9c5" />
<entry type="GenericInserted" style="bg:#2b3328 #76946a" />
<entry type="GenericDeleted" style="bg:#43242b #c34043" />
<entry type="GenericEmph" style="italic #c5c9c5" />
<entry type="GenericStrong" style="bold #c5c9c5" />
<entry type="GenericUnderline" style="underline #c5c9c5" />
<entry type="GenericHeading" style="bold #8ba4b0" />
<entry type="GenericSubheading" style="bold #8ba4b0" />
<entry type="GenericOutput" style="#c5c9c5" />
<entry type="GenericPrompt" style="#c5c9c5" />
<entry type="GenericError" style="#e82424" />
<entry type="GenericTraceback" style="#e82424" />
</style>

View File

@@ -0,0 +1,83 @@
<style name="kanagawa-lotus">
<entry type="Background" style="bg:#f2ecbc #545464" />
<entry type="CodeLine" style="#545464" />
<entry type="Error" style="#e82424" />
<entry type="Other" style="#545464" />
<entry type="LineTableTD" style="" />
<entry type="LineTable" style="" />
<entry type="LineHighlight" style="bg:#e4d794" />
<entry type="LineNumbersTable" style="#a09cac" />
<entry type="LineNumbers" style="#a09cac" />
<entry type="Keyword" style="#624c83" />
<entry type="KeywordReserved" style="#624c83" />
<entry type="KeywordPseudo" style="#624c83" />
<entry type="KeywordConstant" style="#cc6d00" />
<entry type="KeywordDeclaration" style="#624c83" />
<entry type="KeywordNamespace" style="#77713f" />
<entry type="KeywordType" style="#597b75" />
<entry type="Name" style="#545464" />
<entry type="NameClass" style="#597b75" />
<entry type="NameConstant" style="#cc6d00" />
<entry type="NameDecorator" style="bold #cc6d00" />
<entry type="NameEntity" style="#77713f" />
<entry type="NameException" style="#cc6d00" />
<entry type="NameFunction" style="#4d699b" />
<entry type="NameFunctionMagic" style="#4d699b" />
<entry type="NameLabel" style="#6693bf" />
<entry type="NameNamespace" style="#77713f" />
<entry type="NameProperty" style="#77713f" />
<entry type="NameTag" style="#4d699b" />
<entry type="NameVariable" style="#545464" />
<entry type="NameVariableClass" style="#545464" />
<entry type="NameVariableGlobal" style="#545464" />
<entry type="NameVariableInstance" style="#545464" />
<entry type="NameVariableMagic" style="#545464" />
<entry type="NameAttribute" style="#77713f" />
<entry type="NameBuiltin" style="#c84053" />
<entry type="NameBuiltinPseudo" style="#c84053" />
<entry type="NameOther" style="#545464" />
<entry type="Literal" style="#545464" />
<entry type="LiteralDate" style="#545464" />
<entry type="LiteralString" style="#6f894e" />
<entry type="LiteralStringChar" style="#6f894e" />
<entry type="LiteralStringSingle" style="#6f894e" />
<entry type="LiteralStringDouble" style="#6f894e" />
<entry type="LiteralStringBacktick" style="#6f894e" />
<entry type="LiteralStringOther" style="#6f894e" />
<entry type="LiteralStringSymbol" style="#6f894e" />
<entry type="LiteralStringInterpol" style="#6693bf" />
<entry type="LiteralStringAffix" style="#c84053" />
<entry type="LiteralStringDelimiter" style="#6693bf" />
<entry type="LiteralStringEscape" style="#836f4a" />
<entry type="LiteralStringRegex" style="#836f4a" />
<entry type="LiteralStringDoc" style="#8a8980" />
<entry type="LiteralStringHeredoc" style="#8a8980" />
<entry type="LiteralNumber" style="#b35b79" />
<entry type="LiteralNumberBin" style="#b35b79" />
<entry type="LiteralNumberHex" style="#b35b79" />
<entry type="LiteralNumberInteger" style="#b35b79" />
<entry type="LiteralNumberFloat" style="#b35b79" />
<entry type="LiteralNumberIntegerLong" style="#b35b79" />
<entry type="LiteralNumberOct" style="#b35b79" />
<entry type="Operator" style="bold #836f4a" />
<entry type="OperatorWord" style="bold #836f4a" />
<entry type="Comment" style="italic #8a8980" />
<entry type="CommentSingle" style="italic #8a8980" />
<entry type="CommentMultiline" style="italic #8a8980" />
<entry type="CommentSpecial" style="italic #8a8980" />
<entry type="CommentHashbang" style="italic #8a8980" />
<entry type="CommentPreproc" style="italic #c84053" />
<entry type="CommentPreprocFile" style="bold #c84053" />
<entry type="Generic" style="#545464" />
<entry type="GenericInserted" style="bg:#b7d0ae #6e915f" />
<entry type="GenericDeleted" style="bg:#d9a594 #d7474b" />
<entry type="GenericEmph" style="italic #545464" />
<entry type="GenericStrong" style="bold #545464" />
<entry type="GenericUnderline" style="underline #545464" />
<entry type="GenericHeading" style="bold #4d699b" />
<entry type="GenericSubheading" style="bold #4d699b" />
<entry type="GenericOutput" style="#545464" />
<entry type="GenericPrompt" style="#545464" />
<entry type="GenericError" style="#e82424" />
<entry type="GenericTraceback" style="#e82424" />
</style>

View File

@@ -0,0 +1,83 @@
<style name="kanagawa-wave">
<entry type="Background" style="bg:#1f1f28 #dcd7ba" />
<entry type="CodeLine" style="#dcd7ba" />
<entry type="Error" style="#e82424" />
<entry type="Other" style="#dcd7ba" />
<entry type="LineTableTD" style="" />
<entry type="LineTable" style="" />
<entry type="LineHighlight" style="bg:#363646" />
<entry type="LineNumbersTable" style="#54546d" />
<entry type="LineNumbers" style="#54546d" />
<entry type="Keyword" style="#957fb8" />
<entry type="KeywordReserved" style="#957fb8" />
<entry type="KeywordPseudo" style="#957fb8" />
<entry type="KeywordConstant" style="#ffa066" />
<entry type="KeywordDeclaration" style="#957fb8" />
<entry type="KeywordNamespace" style="#e6c384" />
<entry type="KeywordType" style="#7aa89f" />
<entry type="Name" style="#dcd7ba" />
<entry type="NameClass" style="#7aa89f" />
<entry type="NameConstant" style="#ffa066" />
<entry type="NameDecorator" style="bold #ffa066" />
<entry type="NameEntity" style="#e6c384" />
<entry type="NameException" style="#ffa066" />
<entry type="NameFunction" style="#7e9cd8" />
<entry type="NameFunctionMagic" style="#7e9cd8" />
<entry type="NameLabel" style="#7fb4ca" />
<entry type="NameNamespace" style="#e6c384" />
<entry type="NameProperty" style="#e6c384" />
<entry type="NameTag" style="#7e9cd8" />
<entry type="NameVariable" style="#dcd7ba" />
<entry type="NameVariableClass" style="#dcd7ba" />
<entry type="NameVariableGlobal" style="#dcd7ba" />
<entry type="NameVariableInstance" style="#dcd7ba" />
<entry type="NameVariableMagic" style="#dcd7ba" />
<entry type="NameAttribute" style="#e6c384" />
<entry type="NameBuiltin" style="#e46876" />
<entry type="NameBuiltinPseudo" style="#e46876" />
<entry type="NameOther" style="#dcd7ba" />
<entry type="Literal" style="#dcd7ba" />
<entry type="LiteralDate" style="#dcd7ba" />
<entry type="LiteralString" style="#98bb6c" />
<entry type="LiteralStringChar" style="#98bb6c" />
<entry type="LiteralStringSingle" style="#98bb6c" />
<entry type="LiteralStringDouble" style="#98bb6c" />
<entry type="LiteralStringBacktick" style="#98bb6c" />
<entry type="LiteralStringOther" style="#98bb6c" />
<entry type="LiteralStringSymbol" style="#98bb6c" />
<entry type="LiteralStringInterpol" style="#7fb4ca" />
<entry type="LiteralStringAffix" style="#ff5d62" />
<entry type="LiteralStringDelimiter" style="#7fb4ca" />
<entry type="LiteralStringEscape" style="#c0a36e" />
<entry type="LiteralStringRegex" style="#c0a36e" />
<entry type="LiteralStringDoc" style="#727169" />
<entry type="LiteralStringHeredoc" style="#727169" />
<entry type="LiteralNumber" style="#d27e99" />
<entry type="LiteralNumberBin" style="#d27e99" />
<entry type="LiteralNumberHex" style="#d27e99" />
<entry type="LiteralNumberInteger" style="#d27e99" />
<entry type="LiteralNumberFloat" style="#d27e99" />
<entry type="LiteralNumberIntegerLong" style="#d27e99" />
<entry type="LiteralNumberOct" style="#d27e99" />
<entry type="Operator" style="bold #c0a36e" />
<entry type="OperatorWord" style="bold #c0a36e" />
<entry type="Comment" style="italic #727169" />
<entry type="CommentSingle" style="italic #727169" />
<entry type="CommentMultiline" style="italic #727169" />
<entry type="CommentSpecial" style="italic #727169" />
<entry type="CommentHashbang" style="italic #727169" />
<entry type="CommentPreproc" style="italic #e46876" />
<entry type="CommentPreprocFile" style="bold #e46876" />
<entry type="Generic" style="#dcd7ba" />
<entry type="GenericInserted" style="bg:#2b3328 #76946a" />
<entry type="GenericDeleted" style="bg:#43242b #c34043" />
<entry type="GenericEmph" style="italic #dcd7ba" />
<entry type="GenericStrong" style="bold #dcd7ba" />
<entry type="GenericUnderline" style="underline #dcd7ba" />
<entry type="GenericHeading" style="bold #7e9cd8" />
<entry type="GenericSubheading" style="bold #7e9cd8" />
<entry type="GenericOutput" style="#dcd7ba" />
<entry type="GenericPrompt" style="#dcd7ba" />
<entry type="GenericError" style="#e82424" />
<entry type="GenericTraceback" style="#e82424" />
</style>

View File

@@ -1,5 +1,5 @@
<style name="solarized-light"> <style name="solarized-light">
<entry type="Background" style="bg:#eee8d5"/> <entry type="Background" style="bg:#fdf6e3"/>
<entry type="Keyword" style="#859900"/> <entry type="Keyword" style="#859900"/>
<entry type="KeywordConstant" style="bold"/> <entry type="KeywordConstant" style="bold"/>
<entry type="KeywordNamespace" style="bold #dc322f"/> <entry type="KeywordNamespace" style="bold #dc322f"/>

View File

@@ -7,8 +7,8 @@ import (
"strings" "strings"
) )
const _TokenTypeName = "IgnoreNoneOtherErrorCodeLineLineLinkLineTableTDLineTableLineHighlightLineNumbersTableLineNumbersLinePreWrapperBackgroundEOFTypeKeywordKeywordConstantKeywordDeclarationKeywordNamespaceKeywordPseudoKeywordReservedKeywordTypeNameNameAttributeNameClassNameConstantNameDecoratorNameEntityNameExceptionNameKeywordNameLabelNameNamespaceNameOperatorNameOtherNamePseudoNamePropertyNameTagNameBuiltinNameBuiltinPseudoNameVariableNameVariableAnonymousNameVariableClassNameVariableGlobalNameVariableInstanceNameVariableMagicNameFunctionNameFunctionMagicLiteralLiteralDateLiteralOtherLiteralStringLiteralStringAffixLiteralStringAtomLiteralStringBacktickLiteralStringBooleanLiteralStringCharLiteralStringDelimiterLiteralStringDocLiteralStringDoubleLiteralStringEscapeLiteralStringHeredocLiteralStringInterpolLiteralStringNameLiteralStringOtherLiteralStringRegexLiteralStringSingleLiteralStringSymbolLiteralNumberLiteralNumberBinLiteralNumberFloatLiteralNumberHexLiteralNumberIntegerLiteralNumberIntegerLongLiteralNumberOctLiteralNumberByteOperatorOperatorWordPunctuationCommentCommentHashbangCommentMultilineCommentSingleCommentSpecialCommentPreprocCommentPreprocFileGenericGenericDeletedGenericEmphGenericErrorGenericHeadingGenericInsertedGenericOutputGenericPromptGenericStrongGenericSubheadingGenericTracebackGenericUnderlineTextTextWhitespaceTextSymbolTextPunctuation" const _TokenTypeName = "IgnoreNoneOtherErrorCodeLineLineLinkLineTableTDLineTableLineHighlightLineNumbersTableLineNumbersLinePreWrapperBackgroundEOFTypeKeywordKeywordConstantKeywordDeclarationKeywordNamespaceKeywordPseudoKeywordReservedKeywordTypeNameNameAttributeNameClassNameConstantNameDecoratorNameEntityNameExceptionNameKeywordNameLabelNameNamespaceNameOperatorNameOtherNamePseudoNamePropertyNameTagNameBuiltinNameBuiltinPseudoNameVariableNameVariableAnonymousNameVariableClassNameVariableGlobalNameVariableInstanceNameVariableMagicNameFunctionNameFunctionMagicLiteralLiteralDateLiteralOtherLiteralStringLiteralStringAffixLiteralStringAtomLiteralStringBacktickLiteralStringBooleanLiteralStringCharLiteralStringDelimiterLiteralStringDocLiteralStringDoubleLiteralStringEscapeLiteralStringHeredocLiteralStringInterpolLiteralStringNameLiteralStringOtherLiteralStringRegexLiteralStringSingleLiteralStringSymbolLiteralNumberLiteralNumberBinLiteralNumberFloatLiteralNumberHexLiteralNumberIntegerLiteralNumberIntegerLongLiteralNumberOctLiteralNumberByteOperatorOperatorWordOperatorReservedPunctuationCommentCommentHashbangCommentMultilineCommentSingleCommentSpecialCommentPreprocCommentPreprocFileGenericGenericDeletedGenericEmphGenericErrorGenericHeadingGenericInsertedGenericOutputGenericPromptGenericStrongGenericSubheadingGenericTracebackGenericUnderlineTextTextWhitespaceTextSymbolTextPunctuation"
const _TokenTypeLowerName = "ignorenoneothererrorcodelinelinelinklinetabletdlinetablelinehighlightlinenumberstablelinenumberslineprewrapperbackgroundeoftypekeywordkeywordconstantkeyworddeclarationkeywordnamespacekeywordpseudokeywordreservedkeywordtypenamenameattributenameclassnameconstantnamedecoratornameentitynameexceptionnamekeywordnamelabelnamenamespacenameoperatornameothernamepseudonamepropertynametagnamebuiltinnamebuiltinpseudonamevariablenamevariableanonymousnamevariableclassnamevariableglobalnamevariableinstancenamevariablemagicnamefunctionnamefunctionmagicliteralliteraldateliteralotherliteralstringliteralstringaffixliteralstringatomliteralstringbacktickliteralstringbooleanliteralstringcharliteralstringdelimiterliteralstringdocliteralstringdoubleliteralstringescapeliteralstringheredocliteralstringinterpolliteralstringnameliteralstringotherliteralstringregexliteralstringsingleliteralstringsymbolliteralnumberliteralnumberbinliteralnumberfloatliteralnumberhexliteralnumberintegerliteralnumberintegerlongliteralnumberoctliteralnumberbyteoperatoroperatorwordpunctuationcommentcommenthashbangcommentmultilinecommentsinglecommentspecialcommentpreproccommentpreprocfilegenericgenericdeletedgenericemphgenericerrorgenericheadinggenericinsertedgenericoutputgenericpromptgenericstronggenericsubheadinggenerictracebackgenericunderlinetexttextwhitespacetextsymboltextpunctuation" const _TokenTypeLowerName = "ignorenoneothererrorcodelinelinelinklinetabletdlinetablelinehighlightlinenumberstablelinenumberslineprewrapperbackgroundeoftypekeywordkeywordconstantkeyworddeclarationkeywordnamespacekeywordpseudokeywordreservedkeywordtypenamenameattributenameclassnameconstantnamedecoratornameentitynameexceptionnamekeywordnamelabelnamenamespacenameoperatornameothernamepseudonamepropertynametagnamebuiltinnamebuiltinpseudonamevariablenamevariableanonymousnamevariableclassnamevariableglobalnamevariableinstancenamevariablemagicnamefunctionnamefunctionmagicliteralliteraldateliteralotherliteralstringliteralstringaffixliteralstringatomliteralstringbacktickliteralstringbooleanliteralstringcharliteralstringdelimiterliteralstringdocliteralstringdoubleliteralstringescapeliteralstringheredocliteralstringinterpolliteralstringnameliteralstringotherliteralstringregexliteralstringsingleliteralstringsymbolliteralnumberliteralnumberbinliteralnumberfloatliteralnumberhexliteralnumberintegerliteralnumberintegerlongliteralnumberoctliteralnumberbyteoperatoroperatorwordoperatorreservedpunctuationcommentcommenthashbangcommentmultilinecommentsinglecommentspecialcommentpreproccommentpreprocfilegenericgenericdeletedgenericemphgenericerrorgenericheadinggenericinsertedgenericoutputgenericpromptgenericstronggenericsubheadinggenerictracebackgenericunderlinetexttextwhitespacetextsymboltextpunctuation"
var _TokenTypeMap = map[TokenType]string{ var _TokenTypeMap = map[TokenType]string{
-14: _TokenTypeName[0:6], -14: _TokenTypeName[0:6],
@@ -88,30 +88,31 @@ var _TokenTypeMap = map[TokenType]string{
3207: _TokenTypeName[1008:1025], 3207: _TokenTypeName[1008:1025],
4000: _TokenTypeName[1025:1033], 4000: _TokenTypeName[1025:1033],
4001: _TokenTypeName[1033:1045], 4001: _TokenTypeName[1033:1045],
5000: _TokenTypeName[1045:1056], 4002: _TokenTypeName[1045:1061],
6000: _TokenTypeName[1056:1063], 5000: _TokenTypeName[1061:1072],
6001: _TokenTypeName[1063:1078], 6000: _TokenTypeName[1072:1079],
6002: _TokenTypeName[1078:1094], 6001: _TokenTypeName[1079:1094],
6003: _TokenTypeName[1094:1107], 6002: _TokenTypeName[1094:1110],
6004: _TokenTypeName[1107:1121], 6003: _TokenTypeName[1110:1123],
6100: _TokenTypeName[1121:1135], 6004: _TokenTypeName[1123:1137],
6101: _TokenTypeName[1135:1153], 6100: _TokenTypeName[1137:1151],
7000: _TokenTypeName[1153:1160], 6101: _TokenTypeName[1151:1169],
7001: _TokenTypeName[1160:1174], 7000: _TokenTypeName[1169:1176],
7002: _TokenTypeName[1174:1185], 7001: _TokenTypeName[1176:1190],
7003: _TokenTypeName[1185:1197], 7002: _TokenTypeName[1190:1201],
7004: _TokenTypeName[1197:1211], 7003: _TokenTypeName[1201:1213],
7005: _TokenTypeName[1211:1226], 7004: _TokenTypeName[1213:1227],
7006: _TokenTypeName[1226:1239], 7005: _TokenTypeName[1227:1242],
7007: _TokenTypeName[1239:1252], 7006: _TokenTypeName[1242:1255],
7008: _TokenTypeName[1252:1265], 7007: _TokenTypeName[1255:1268],
7009: _TokenTypeName[1265:1282], 7008: _TokenTypeName[1268:1281],
7010: _TokenTypeName[1282:1298], 7009: _TokenTypeName[1281:1298],
7011: _TokenTypeName[1298:1314], 7010: _TokenTypeName[1298:1314],
8000: _TokenTypeName[1314:1318], 7011: _TokenTypeName[1314:1330],
8001: _TokenTypeName[1318:1332], 8000: _TokenTypeName[1330:1334],
8002: _TokenTypeName[1332:1342], 8001: _TokenTypeName[1334:1348],
8003: _TokenTypeName[1342:1357], 8002: _TokenTypeName[1348:1358],
8003: _TokenTypeName[1358:1373],
} }
func (i TokenType) String() string { func (i TokenType) String() string {
@@ -202,6 +203,7 @@ func _TokenTypeNoOp() {
_ = x[LiteralNumberByte-(3207)] _ = x[LiteralNumberByte-(3207)]
_ = x[Operator-(4000)] _ = x[Operator-(4000)]
_ = x[OperatorWord-(4001)] _ = x[OperatorWord-(4001)]
_ = x[OperatorReserved-(4002)]
_ = x[Punctuation-(5000)] _ = x[Punctuation-(5000)]
_ = x[Comment-(6000)] _ = x[Comment-(6000)]
_ = x[CommentHashbang-(6001)] _ = x[CommentHashbang-(6001)]
@@ -228,7 +230,7 @@ func _TokenTypeNoOp() {
_ = x[TextPunctuation-(8003)] _ = x[TextPunctuation-(8003)]
} }
var _TokenTypeValues = []TokenType{Ignore, None, Other, Error, CodeLine, LineLink, LineTableTD, LineTable, LineHighlight, LineNumbersTable, LineNumbers, Line, PreWrapper, Background, EOFType, Keyword, KeywordConstant, KeywordDeclaration, KeywordNamespace, KeywordPseudo, KeywordReserved, KeywordType, Name, NameAttribute, NameClass, NameConstant, NameDecorator, NameEntity, NameException, NameKeyword, NameLabel, NameNamespace, NameOperator, NameOther, NamePseudo, NameProperty, NameTag, NameBuiltin, NameBuiltinPseudo, NameVariable, NameVariableAnonymous, NameVariableClass, NameVariableGlobal, NameVariableInstance, NameVariableMagic, NameFunction, NameFunctionMagic, Literal, LiteralDate, LiteralOther, LiteralString, LiteralStringAffix, LiteralStringAtom, LiteralStringBacktick, LiteralStringBoolean, LiteralStringChar, LiteralStringDelimiter, LiteralStringDoc, LiteralStringDouble, LiteralStringEscape, LiteralStringHeredoc, LiteralStringInterpol, LiteralStringName, LiteralStringOther, LiteralStringRegex, LiteralStringSingle, LiteralStringSymbol, LiteralNumber, LiteralNumberBin, LiteralNumberFloat, LiteralNumberHex, LiteralNumberInteger, LiteralNumberIntegerLong, LiteralNumberOct, LiteralNumberByte, Operator, OperatorWord, Punctuation, Comment, CommentHashbang, CommentMultiline, CommentSingle, CommentSpecial, CommentPreproc, CommentPreprocFile, Generic, GenericDeleted, GenericEmph, GenericError, GenericHeading, GenericInserted, GenericOutput, GenericPrompt, GenericStrong, GenericSubheading, GenericTraceback, GenericUnderline, Text, TextWhitespace, TextSymbol, TextPunctuation} var _TokenTypeValues = []TokenType{Ignore, None, Other, Error, CodeLine, LineLink, LineTableTD, LineTable, LineHighlight, LineNumbersTable, LineNumbers, Line, PreWrapper, Background, EOFType, Keyword, KeywordConstant, KeywordDeclaration, KeywordNamespace, KeywordPseudo, KeywordReserved, KeywordType, Name, NameAttribute, NameClass, NameConstant, NameDecorator, NameEntity, NameException, NameKeyword, NameLabel, NameNamespace, NameOperator, NameOther, NamePseudo, NameProperty, NameTag, NameBuiltin, NameBuiltinPseudo, NameVariable, NameVariableAnonymous, NameVariableClass, NameVariableGlobal, NameVariableInstance, NameVariableMagic, NameFunction, NameFunctionMagic, Literal, LiteralDate, LiteralOther, LiteralString, LiteralStringAffix, LiteralStringAtom, LiteralStringBacktick, LiteralStringBoolean, LiteralStringChar, LiteralStringDelimiter, LiteralStringDoc, LiteralStringDouble, LiteralStringEscape, LiteralStringHeredoc, LiteralStringInterpol, LiteralStringName, LiteralStringOther, LiteralStringRegex, LiteralStringSingle, LiteralStringSymbol, LiteralNumber, LiteralNumberBin, LiteralNumberFloat, LiteralNumberHex, LiteralNumberInteger, LiteralNumberIntegerLong, LiteralNumberOct, LiteralNumberByte, Operator, OperatorWord, OperatorReserved, Punctuation, Comment, CommentHashbang, CommentMultiline, CommentSingle, CommentSpecial, CommentPreproc, CommentPreprocFile, Generic, GenericDeleted, GenericEmph, GenericError, GenericHeading, GenericInserted, GenericOutput, GenericPrompt, GenericStrong, GenericSubheading, GenericTraceback, GenericUnderline, Text, TextWhitespace, TextSymbol, TextPunctuation}
var _TokenTypeNameToValueMap = map[string]TokenType{ var _TokenTypeNameToValueMap = map[string]TokenType{
_TokenTypeName[0:6]: Ignore, _TokenTypeName[0:6]: Ignore,
@@ -385,54 +387,56 @@ var _TokenTypeNameToValueMap = map[string]TokenType{
_TokenTypeLowerName[1025:1033]: Operator, _TokenTypeLowerName[1025:1033]: Operator,
_TokenTypeName[1033:1045]: OperatorWord, _TokenTypeName[1033:1045]: OperatorWord,
_TokenTypeLowerName[1033:1045]: OperatorWord, _TokenTypeLowerName[1033:1045]: OperatorWord,
_TokenTypeName[1045:1056]: Punctuation, _TokenTypeName[1045:1061]: OperatorReserved,
_TokenTypeLowerName[1045:1056]: Punctuation, _TokenTypeLowerName[1045:1061]: OperatorReserved,
_TokenTypeName[1056:1063]: Comment, _TokenTypeName[1061:1072]: Punctuation,
_TokenTypeLowerName[1056:1063]: Comment, _TokenTypeLowerName[1061:1072]: Punctuation,
_TokenTypeName[1063:1078]: CommentHashbang, _TokenTypeName[1072:1079]: Comment,
_TokenTypeLowerName[1063:1078]: CommentHashbang, _TokenTypeLowerName[1072:1079]: Comment,
_TokenTypeName[1078:1094]: CommentMultiline, _TokenTypeName[1079:1094]: CommentHashbang,
_TokenTypeLowerName[1078:1094]: CommentMultiline, _TokenTypeLowerName[1079:1094]: CommentHashbang,
_TokenTypeName[1094:1107]: CommentSingle, _TokenTypeName[1094:1110]: CommentMultiline,
_TokenTypeLowerName[1094:1107]: CommentSingle, _TokenTypeLowerName[1094:1110]: CommentMultiline,
_TokenTypeName[1107:1121]: CommentSpecial, _TokenTypeName[1110:1123]: CommentSingle,
_TokenTypeLowerName[1107:1121]: CommentSpecial, _TokenTypeLowerName[1110:1123]: CommentSingle,
_TokenTypeName[1121:1135]: CommentPreproc, _TokenTypeName[1123:1137]: CommentSpecial,
_TokenTypeLowerName[1121:1135]: CommentPreproc, _TokenTypeLowerName[1123:1137]: CommentSpecial,
_TokenTypeName[1135:1153]: CommentPreprocFile, _TokenTypeName[1137:1151]: CommentPreproc,
_TokenTypeLowerName[1135:1153]: CommentPreprocFile, _TokenTypeLowerName[1137:1151]: CommentPreproc,
_TokenTypeName[1153:1160]: Generic, _TokenTypeName[1151:1169]: CommentPreprocFile,
_TokenTypeLowerName[1153:1160]: Generic, _TokenTypeLowerName[1151:1169]: CommentPreprocFile,
_TokenTypeName[1160:1174]: GenericDeleted, _TokenTypeName[1169:1176]: Generic,
_TokenTypeLowerName[1160:1174]: GenericDeleted, _TokenTypeLowerName[1169:1176]: Generic,
_TokenTypeName[1174:1185]: GenericEmph, _TokenTypeName[1176:1190]: GenericDeleted,
_TokenTypeLowerName[1174:1185]: GenericEmph, _TokenTypeLowerName[1176:1190]: GenericDeleted,
_TokenTypeName[1185:1197]: GenericError, _TokenTypeName[1190:1201]: GenericEmph,
_TokenTypeLowerName[1185:1197]: GenericError, _TokenTypeLowerName[1190:1201]: GenericEmph,
_TokenTypeName[1197:1211]: GenericHeading, _TokenTypeName[1201:1213]: GenericError,
_TokenTypeLowerName[1197:1211]: GenericHeading, _TokenTypeLowerName[1201:1213]: GenericError,
_TokenTypeName[1211:1226]: GenericInserted, _TokenTypeName[1213:1227]: GenericHeading,
_TokenTypeLowerName[1211:1226]: GenericInserted, _TokenTypeLowerName[1213:1227]: GenericHeading,
_TokenTypeName[1226:1239]: GenericOutput, _TokenTypeName[1227:1242]: GenericInserted,
_TokenTypeLowerName[1226:1239]: GenericOutput, _TokenTypeLowerName[1227:1242]: GenericInserted,
_TokenTypeName[1239:1252]: GenericPrompt, _TokenTypeName[1242:1255]: GenericOutput,
_TokenTypeLowerName[1239:1252]: GenericPrompt, _TokenTypeLowerName[1242:1255]: GenericOutput,
_TokenTypeName[1252:1265]: GenericStrong, _TokenTypeName[1255:1268]: GenericPrompt,
_TokenTypeLowerName[1252:1265]: GenericStrong, _TokenTypeLowerName[1255:1268]: GenericPrompt,
_TokenTypeName[1265:1282]: GenericSubheading, _TokenTypeName[1268:1281]: GenericStrong,
_TokenTypeLowerName[1265:1282]: GenericSubheading, _TokenTypeLowerName[1268:1281]: GenericStrong,
_TokenTypeName[1282:1298]: GenericTraceback, _TokenTypeName[1281:1298]: GenericSubheading,
_TokenTypeLowerName[1282:1298]: GenericTraceback, _TokenTypeLowerName[1281:1298]: GenericSubheading,
_TokenTypeName[1298:1314]: GenericUnderline, _TokenTypeName[1298:1314]: GenericTraceback,
_TokenTypeLowerName[1298:1314]: GenericUnderline, _TokenTypeLowerName[1298:1314]: GenericTraceback,
_TokenTypeName[1314:1318]: Text, _TokenTypeName[1314:1330]: GenericUnderline,
_TokenTypeLowerName[1314:1318]: Text, _TokenTypeLowerName[1314:1330]: GenericUnderline,
_TokenTypeName[1318:1332]: TextWhitespace, _TokenTypeName[1330:1334]: Text,
_TokenTypeLowerName[1318:1332]: TextWhitespace, _TokenTypeLowerName[1330:1334]: Text,
_TokenTypeName[1332:1342]: TextSymbol, _TokenTypeName[1334:1348]: TextWhitespace,
_TokenTypeLowerName[1332:1342]: TextSymbol, _TokenTypeLowerName[1334:1348]: TextWhitespace,
_TokenTypeName[1342:1357]: TextPunctuation, _TokenTypeName[1348:1358]: TextSymbol,
_TokenTypeLowerName[1342:1357]: TextPunctuation, _TokenTypeLowerName[1348:1358]: TextSymbol,
_TokenTypeName[1358:1373]: TextPunctuation,
_TokenTypeLowerName[1358:1373]: TextPunctuation,
} }
var _TokenTypeNames = []string{ var _TokenTypeNames = []string{
@@ -513,30 +517,31 @@ var _TokenTypeNames = []string{
_TokenTypeName[1008:1025], _TokenTypeName[1008:1025],
_TokenTypeName[1025:1033], _TokenTypeName[1025:1033],
_TokenTypeName[1033:1045], _TokenTypeName[1033:1045],
_TokenTypeName[1045:1056], _TokenTypeName[1045:1061],
_TokenTypeName[1056:1063], _TokenTypeName[1061:1072],
_TokenTypeName[1063:1078], _TokenTypeName[1072:1079],
_TokenTypeName[1078:1094], _TokenTypeName[1079:1094],
_TokenTypeName[1094:1107], _TokenTypeName[1094:1110],
_TokenTypeName[1107:1121], _TokenTypeName[1110:1123],
_TokenTypeName[1121:1135], _TokenTypeName[1123:1137],
_TokenTypeName[1135:1153], _TokenTypeName[1137:1151],
_TokenTypeName[1153:1160], _TokenTypeName[1151:1169],
_TokenTypeName[1160:1174], _TokenTypeName[1169:1176],
_TokenTypeName[1174:1185], _TokenTypeName[1176:1190],
_TokenTypeName[1185:1197], _TokenTypeName[1190:1201],
_TokenTypeName[1197:1211], _TokenTypeName[1201:1213],
_TokenTypeName[1211:1226], _TokenTypeName[1213:1227],
_TokenTypeName[1226:1239], _TokenTypeName[1227:1242],
_TokenTypeName[1239:1252], _TokenTypeName[1242:1255],
_TokenTypeName[1252:1265], _TokenTypeName[1255:1268],
_TokenTypeName[1265:1282], _TokenTypeName[1268:1281],
_TokenTypeName[1282:1298], _TokenTypeName[1281:1298],
_TokenTypeName[1298:1314], _TokenTypeName[1298:1314],
_TokenTypeName[1314:1318], _TokenTypeName[1314:1330],
_TokenTypeName[1318:1332], _TokenTypeName[1330:1334],
_TokenTypeName[1332:1342], _TokenTypeName[1334:1348],
_TokenTypeName[1342:1357], _TokenTypeName[1348:1358],
_TokenTypeName[1358:1373],
} }
// TokenTypeString retrieves an enum value from the enum constants string name. // TokenTypeString retrieves an enum value from the enum constants string name.

View File

@@ -143,6 +143,7 @@ const (
const ( const (
Operator TokenType = 4000 + iota Operator TokenType = 4000 + iota
OperatorWord OperatorWord
OperatorReserved
) )
// Punctuation. // Punctuation.
@@ -294,8 +295,9 @@ var (
NumberIntegerLong: "il", NumberIntegerLong: "il",
NumberOct: "mo", NumberOct: "mo",
Operator: "o", Operator: "o",
OperatorWord: "ow", OperatorWord: "ow",
OperatorReserved: "or",
Punctuation: "p", Punctuation: "p",

View File

@@ -69,7 +69,7 @@ The internals of `regexp2` always operate on `[]rune` so `Index` and `Length` da
| --- | --- | --- | | --- | --- | --- |
| Catastrophic backtracking possible | no, constant execution time guarantees | yes, if your pattern is at risk you can use the `re.MatchTimeout` field | | Catastrophic backtracking possible | no, constant execution time guarantees | yes, if your pattern is at risk you can use the `re.MatchTimeout` field |
| Python-style capture groups `(?P<name>re)` | yes | no (yes in RE2 compat mode) | | Python-style capture groups `(?P<name>re)` | yes | no (yes in RE2 compat mode) |
| .NET-style capture groups `(?<name>re)` or `(?'name're)` | no | yes | | .NET-style capture groups `(?<name>re)` or `(?'name're)` | yes | yes |
| comments `(?#comment)` | no | yes | | comments `(?#comment)` | no | yes |
| branch numbering reset `(?\|a\|b)` | no | no | | branch numbering reset `(?\|a\|b)` | no | no |
| possessive match `(?>re)` | no | yes | | possessive match `(?>re)` | no | yes |

View File

@@ -313,12 +313,9 @@ func (r *runner) execute() error {
} }
} else { } else {
// The inner expression found an empty match, so we'll go directly to 'back2' if we // The inner expression found an empty match, so we'll go directly to 'back2' if we
// backtrack. In this case, we need to push something on the stack, since back2 pops. // backtrack. Don't touch the grouping stack here; instead, record the old mark and
// However, in the case of ()+? or similar, this empty match may be legitimate, so push the text // a flag indicating that backtracking doesn't need to pop a grouping stack frame.
// position associated with that empty match. r.trackPushNeg2(oldMarkPos, 0)
r.stackPush(oldMarkPos)
r.trackPushNeg1(r.stackPeek()) // Save old mark
} }
r.advance(1) r.advance(1)
continue continue
@@ -334,18 +331,22 @@ func (r *runner) execute() error {
r.trackPopN(2) r.trackPopN(2)
pos := r.trackPeekN(1) pos := r.trackPeekN(1)
r.trackPushNeg1(r.trackPeek()) // Save old mark r.trackPushNeg2(r.trackPeek(), 1) // Save old mark, note that we pushed a new mark
r.stackPush(pos) // Make new mark r.stackPush(pos) // Make new mark
r.textto(pos) // Recall position r.textto(pos) // Recall position
r.goTo(r.operand(0)) // Loop r.goTo(r.operand(0)) // Loop
continue continue
case syntax.Lazybranchmark | syntax.Back2: case syntax.Lazybranchmark | syntax.Back2:
// The lazy loop has failed. We'll do a true backtrack and // The lazy loop has failed. We'll do a true backtrack and
// start over before the lazy loop. // start over before the lazy loop.
r.stackPop() r.trackPopN(2)
r.trackPop() oldMark := r.trackPeek()
r.stackPush(r.trackPeek()) // Recall old mark needsPop := r.trackPeekN(1)
if needsPop != 0 {
r.stackPop()
}
r.stackPush(oldMark) // Recall old mark
break break
case syntax.Setcount: case syntax.Setcount:

4
vendor/modules.txt vendored
View File

@@ -32,7 +32,7 @@ github.com/ProtonMail/go-crypto/openpgp/packet
github.com/ProtonMail/go-crypto/openpgp/s2k github.com/ProtonMail/go-crypto/openpgp/s2k
github.com/ProtonMail/go-crypto/openpgp/x25519 github.com/ProtonMail/go-crypto/openpgp/x25519
github.com/ProtonMail/go-crypto/openpgp/x448 github.com/ProtonMail/go-crypto/openpgp/x448
# github.com/alecthomas/chroma/v2 v2.23.1 # github.com/alecthomas/chroma/v2 v2.24.1
## explicit; go 1.22 ## explicit; go 1.22
github.com/alecthomas/chroma/v2 github.com/alecthomas/chroma/v2
github.com/alecthomas/chroma/v2/formatters github.com/alecthomas/chroma/v2/formatters
@@ -62,7 +62,7 @@ github.com/cyphar/filepath-securejoin/internal/consts
# github.com/davecgh/go-spew v1.1.1 # github.com/davecgh/go-spew v1.1.1
## explicit ## explicit
github.com/davecgh/go-spew/spew github.com/davecgh/go-spew/spew
# github.com/dlclark/regexp2 v1.11.5 # github.com/dlclark/regexp2 v1.12.0
## explicit; go 1.13 ## explicit; go 1.13
github.com/dlclark/regexp2 github.com/dlclark/regexp2
github.com/dlclark/regexp2/syntax github.com/dlclark/regexp2/syntax