mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	update chroma to v0.8.0 (#12337)
This commit is contained in:
		
							
								
								
									
										206
									
								
								vendor/github.com/alecthomas/chroma/lexers/c/caddyfile.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										206
									
								
								vendor/github.com/alecthomas/chroma/lexers/c/caddyfile.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,206 @@ | ||||
| package c | ||||
|  | ||||
| import ( | ||||
| 	. "github.com/alecthomas/chroma" // nolint | ||||
| 	"github.com/alecthomas/chroma/lexers/internal" | ||||
| ) | ||||
|  | ||||
| // caddyfileCommon are the rules common to both of the lexer variants | ||||
| var caddyfileCommon = Rules{ | ||||
| 	"site_block_common": { | ||||
| 		// Import keyword | ||||
| 		{`(import)(\s+)([^\s]+)`, ByGroups(Keyword, Text, NameVariableMagic), nil}, | ||||
| 		// Matcher definition | ||||
| 		{`@[^\s]+(?=\s)`, NameDecorator, Push("matcher")}, | ||||
| 		// Matcher token stub for docs | ||||
| 		{`\[\<matcher\>\]`, NameDecorator, Push("matcher")}, | ||||
| 		// These cannot have matchers but may have things that look like | ||||
| 		// matchers in their arguments, so we just parse as a subdirective. | ||||
| 		{`try_files`, Keyword, Push("subdirective")}, | ||||
| 		// These are special, they can nest more directives | ||||
| 		{`handle_errors|handle|route|handle_path|not`, Keyword, Push("nested_directive")}, | ||||
| 		// Any other directive | ||||
| 		{`[^\s#]+`, Keyword, Push("directive")}, | ||||
| 		Include("base"), | ||||
| 	}, | ||||
| 	"matcher": { | ||||
| 		{`\{`, Punctuation, Push("block")}, | ||||
| 		// Not can be one-liner | ||||
| 		{`not`, Keyword, Push("deep_not_matcher")}, | ||||
| 		// Any other same-line matcher | ||||
| 		{`[^\s#]+`, Keyword, Push("arguments")}, | ||||
| 		// Terminators | ||||
| 		{`\n`, Text, Pop(1)}, | ||||
| 		{`\}`, Punctuation, Pop(1)}, | ||||
| 		Include("base"), | ||||
| 	}, | ||||
| 	"block": { | ||||
| 		{`\}`, Punctuation, Pop(2)}, | ||||
| 		// Not can be one-liner | ||||
| 		{`not`, Keyword, Push("not_matcher")}, | ||||
| 		// Any other subdirective | ||||
| 		{`[^\s#]+`, Keyword, Push("subdirective")}, | ||||
| 		Include("base"), | ||||
| 	}, | ||||
| 	"nested_block": { | ||||
| 		{`\}`, Punctuation, Pop(2)}, | ||||
| 		// Matcher definition | ||||
| 		{`@[^\s]+(?=\s)`, NameDecorator, Push("matcher")}, | ||||
| 		// Something that starts with literally < is probably a docs stub | ||||
| 		{`\<[^#]+\>`, Keyword, Push("nested_directive")}, | ||||
| 		// Any other directive | ||||
| 		{`[^\s#]+`, Keyword, Push("nested_directive")}, | ||||
| 		Include("base"), | ||||
| 	}, | ||||
| 	"not_matcher": { | ||||
| 		{`\}`, Punctuation, Pop(2)}, | ||||
| 		{`\{(?=\s)`, Punctuation, Push("block")}, | ||||
| 		{`[^\s#]+`, Keyword, Push("arguments")}, | ||||
| 		{`\s+`, Text, nil}, | ||||
| 	}, | ||||
| 	"deep_not_matcher": { | ||||
| 		{`\}`, Punctuation, Pop(2)}, | ||||
| 		{`\{(?=\s)`, Punctuation, Push("block")}, | ||||
| 		{`[^\s#]+`, Keyword, Push("deep_subdirective")}, | ||||
| 		{`\s+`, Text, nil}, | ||||
| 	}, | ||||
| 	"directive": { | ||||
| 		{`\{(?=\s)`, Punctuation, Push("block")}, | ||||
| 		Include("matcher_token"), | ||||
| 		Include("comments_pop_1"), | ||||
| 		{`\n`, Text, Pop(1)}, | ||||
| 		Include("base"), | ||||
| 	}, | ||||
| 	"nested_directive": { | ||||
| 		{`\{(?=\s)`, Punctuation, Push("nested_block")}, | ||||
| 		Include("matcher_token"), | ||||
| 		Include("comments_pop_1"), | ||||
| 		{`\n`, Text, Pop(1)}, | ||||
| 		Include("base"), | ||||
| 	}, | ||||
| 	"subdirective": { | ||||
| 		{`\{(?=\s)`, Punctuation, Push("block")}, | ||||
| 		Include("comments_pop_1"), | ||||
| 		{`\n`, Text, Pop(1)}, | ||||
| 		Include("base"), | ||||
| 	}, | ||||
| 	"arguments": { | ||||
| 		{`\{(?=\s)`, Punctuation, Push("block")}, | ||||
| 		Include("comments_pop_2"), | ||||
| 		{`\\\n`, Text, nil}, // Skip escaped newlines | ||||
| 		{`\n`, Text, Pop(2)}, | ||||
| 		Include("base"), | ||||
| 	}, | ||||
| 	"deep_subdirective": { | ||||
| 		{`\{(?=\s)`, Punctuation, Push("block")}, | ||||
| 		Include("comments_pop_3"), | ||||
| 		{`\n`, Text, Pop(3)}, | ||||
| 		Include("base"), | ||||
| 	}, | ||||
| 	"matcher_token": { | ||||
| 		{`@[^\s]+`, NameDecorator, Push("arguments")},         // Named matcher | ||||
| 		{`/[^\s]+`, NameDecorator, Push("arguments")},         // Path matcher | ||||
| 		{`\*`, NameDecorator, Push("arguments")},              // Wildcard path matcher | ||||
| 		{`\[\<matcher\>\]`, NameDecorator, Push("arguments")}, // Matcher token stub for docs | ||||
| 	}, | ||||
| 	"comments": { | ||||
| 		{`^#.*\n`, CommentSingle, nil},   // Comment at start of line | ||||
| 		{`\s+#.*\n`, CommentSingle, nil}, // Comment preceded by whitespace | ||||
| 	}, | ||||
| 	"comments_pop_1": { | ||||
| 		{`^#.*\n`, CommentSingle, Pop(1)},   // Comment at start of line | ||||
| 		{`\s+#.*\n`, CommentSingle, Pop(1)}, // Comment preceded by whitespace | ||||
| 	}, | ||||
| 	"comments_pop_2": { | ||||
| 		{`^#.*\n`, CommentSingle, Pop(2)},   // Comment at start of line | ||||
| 		{`\s+#.*\n`, CommentSingle, Pop(2)}, // Comment preceded by whitespace | ||||
| 	}, | ||||
| 	"comments_pop_3": { | ||||
| 		{`^#.*\n`, CommentSingle, Pop(3)},   // Comment at start of line | ||||
| 		{`\s+#.*\n`, CommentSingle, Pop(3)}, // Comment preceded by whitespace | ||||
| 	}, | ||||
| 	"base": { | ||||
| 		Include("comments"), | ||||
| 		{`(on|off|first|last|before|after|internal|strip_prefix|strip_suffix|replace)\b`, NameConstant, nil}, | ||||
| 		{`(https?://)?([a-z0-9.-]+)(:)([0-9]+)`, ByGroups(Name, Name, Punctuation, LiteralNumberInteger), nil}, | ||||
| 		{`[a-z-]+/[a-z-+]+`, LiteralString, nil}, | ||||
| 		{`[0-9]+[km]?\b`, LiteralNumberInteger, nil}, | ||||
| 		{`\{[\w+.\$-]+\}`, LiteralStringEscape, nil}, // Placeholder | ||||
| 		{`\[(?=[^#{}$]+\])`, Punctuation, nil}, | ||||
| 		{`\]|\|`, Punctuation, nil}, | ||||
| 		{`[^\s#{}$\]]+`, LiteralString, nil}, | ||||
| 		{`/[^\s#]*`, Name, nil}, | ||||
| 		{`\s+`, Text, nil}, | ||||
| 	}, | ||||
| } | ||||
|  | ||||
| // Caddyfile lexer. | ||||
| var Caddyfile = internal.Register(MustNewLexer( | ||||
| 	&Config{ | ||||
| 		Name:      "Caddyfile", | ||||
| 		Aliases:   []string{"caddyfile", "caddy"}, | ||||
| 		Filenames: []string{"Caddyfile*"}, | ||||
| 		MimeTypes: []string{}, | ||||
| 	}, | ||||
| 	Rules{ | ||||
| 		"root": { | ||||
| 			Include("comments"), | ||||
| 			// Global options block | ||||
| 			{`^\s*(\{)\s*$`, ByGroups(Punctuation), Push("globals")}, | ||||
| 			// Snippets | ||||
| 			{`(\([^\s#]+\))(\s*)(\{)`, ByGroups(NameVariableAnonymous, Text, Punctuation), Push("snippet")}, | ||||
| 			// Site label | ||||
| 			{`[^#{(\s,]+`, GenericHeading, Push("label")}, | ||||
| 			// Site label with placeholder | ||||
| 			{`\{[\w+.\$-]+\}`, LiteralStringEscape, Push("label")}, | ||||
| 			{`\s+`, Text, nil}, | ||||
| 		}, | ||||
| 		"globals": { | ||||
| 			{`\}`, Punctuation, Pop(1)}, | ||||
| 			{`[^\s#]+`, Keyword, Push("directive")}, | ||||
| 			Include("base"), | ||||
| 		}, | ||||
| 		"snippet": { | ||||
| 			{`\}`, Punctuation, Pop(1)}, | ||||
| 			// Matcher definition | ||||
| 			{`@[^\s]+(?=\s)`, NameDecorator, Push("matcher")}, | ||||
| 			// Any directive | ||||
| 			{`[^\s#]+`, Keyword, Push("directive")}, | ||||
| 			Include("base"), | ||||
| 		}, | ||||
| 		"label": { | ||||
| 			// Allow multiple labels, comma separated, newlines after | ||||
| 			// a comma means another label is coming | ||||
| 			{`,\s*\n?`, Text, nil}, | ||||
| 			{` `, Text, nil}, | ||||
| 			// Site label with placeholder | ||||
| 			{`\{[\w+.\$-]+\}`, LiteralStringEscape, nil}, | ||||
| 			// Site label | ||||
| 			{`[^#{(\s,]+`, GenericHeading, nil}, | ||||
| 			// Comment after non-block label (hack because comments end in \n) | ||||
| 			{`#.*\n`, CommentSingle, Push("site_block")}, | ||||
| 			// Note: if \n, we'll never pop out of the site_block, it's valid | ||||
| 			{`\{(?=\s)|\n`, Punctuation, Push("site_block")}, | ||||
| 		}, | ||||
| 		"site_block": { | ||||
| 			{`\}`, Punctuation, Pop(2)}, | ||||
| 			Include("site_block_common"), | ||||
| 		}, | ||||
| 	}.Merge(caddyfileCommon), | ||||
| )) | ||||
|  | ||||
| // Caddyfile directive-only lexer. | ||||
| var CaddyfileDirectives = internal.Register(MustNewLexer( | ||||
| 	&Config{ | ||||
| 		Name:      "Caddyfile Directives", | ||||
| 		Aliases:   []string{"caddyfile-directives", "caddyfile-d", "caddy-d"}, | ||||
| 		Filenames: []string{}, | ||||
| 		MimeTypes: []string{}, | ||||
| 	}, | ||||
| 	Rules{ | ||||
| 		// Same as "site_block" in Caddyfile | ||||
| 		"root": { | ||||
| 			Include("site_block_common"), | ||||
| 		}, | ||||
| 	}.Merge(caddyfileCommon), | ||||
| )) | ||||
		Reference in New Issue
	
	Block a user