1package lexers
 2
 3import (
 4	"strings"
 5
 6	. "github.com/alecthomas/chroma/v2" // nolint
 7)
 8
 9// phtml lexer is PHP in HTML.
10var _ = Register(DelegatingLexer(HTML, MustNewLexer(
11	&Config{
12		Name:            "PHTML",
13		Aliases:         []string{"phtml"},
14		Filenames:       []string{"*.phtml", "*.php", "*.php[345]", "*.inc"},
15		MimeTypes:       []string{"application/x-php", "application/x-httpd-php", "application/x-httpd-php3", "application/x-httpd-php4", "application/x-httpd-php5", "text/x-php"},
16		DotAll:          true,
17		CaseInsensitive: true,
18		EnsureNL:        true,
19		Priority:        2,
20	},
21	func() Rules {
22		return Get("PHP").(*RegexLexer).MustRules().
23			Rename("root", "php").
24			Merge(Rules{
25				"root": {
26					{`<\?(php)?`, CommentPreproc, Push("php")},
27					{`[^<]+`, Other, nil},
28					{`<`, Other, nil},
29				},
30			})
31	},
32).SetAnalyser(func(text string) float32 {
33	if strings.Contains(text, "<?php") {
34		return 0.5
35	}
36	return 0.0
37})))