1
0
mirror of https://github.com/alecthomas/chroma.git synced 2025-03-17 20:58:08 +02:00

Convert bashsessions lexer to XML

This commit is contained in:
Alec Thomas 2022-12-12 07:41:42 +11:00
parent aecedef97d
commit 45e3bfb671
6 changed files with 28 additions and 29 deletions

View File

@ -82,7 +82,7 @@ def resolve_emitter(emitter):
name = args.__name__
if name.endswith('Lexer'):
name = name[:-5]
emitter = '<using state="%s"/>' % state
emitter = '<using lexer="%s"/>' % state
else:
raise ValueError('only support "using" with lexer classes, not %r' % args)
else:

2
bin/go
View File

@ -1 +1 @@
.go-1.19.2.pkg
.go-1.19.4.pkg

View File

@ -1 +1 @@
.go-1.19.2.pkg
.go-1.19.4.pkg

View File

@ -1,26 +0,0 @@
package lexers
import (
. "github.com/alecthomas/chroma/v2" // nolint
)
// BashSession lexer.
var BashSession = Register(MustNewLexer(
&Config{
Name: "BashSession",
Aliases: []string{"bash-session", "console", "shell-session"},
Filenames: []string{".sh-session"},
MimeTypes: []string{"text/x-sh"},
EnsureNL: true,
},
bashsessionRules,
))
func bashsessionRules() Rules {
return Rules{
"root": {
{`^((?:\[[^]]+@[^]]+\]\s?)?[#$%>])(\s*)(.*\n?)`, ByGroups(GenericPrompt, Text, Using("Bash")), nil},
{`^.+\n?`, GenericOutput, nil},
},
}
}

View File

@ -0,0 +1,25 @@
<lexer>
<config>
<name>BashSession</name>
<alias>bash-session</alias>
<alias>console</alias>
<alias>shell-session</alias>
<filename>*.sh-session</filename>
<mime_type>text/x-sh</mime_type>
<ensure_nl>true</ensure_nl>
</config>
<rules>
<state name="root">
<rule pattern="^((?:\[[^]]+@[^]]+\]\s?)?[#$%>])(\s*)(.*\n?)">
<bygroups>
<token type="GenericPrompt"/>
<token type="Text"/>
<using lexer="bash"/>
</bygroups>
</rule>
<rule pattern="^.+\n?">
<token type="GenericOutput"/>
</rule>
</state>
</rules>
</lexer>