mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Server-side syntax highlighting for all code (#12047)
* Server-side syntax hilighting for all code This PR does a few things: * Remove all traces of highlight.js * Use chroma library to provide fast syntax hilighting directly on the server * Provide syntax hilighting for diffs * Re-style both unified and split diffs views * Add custom syntax hilighting styling for both regular and arc-green Fixes #7729 Fixes #10157 Fixes #11825 Fixes #7728 Fixes #3872 Fixes #3682 And perhaps gets closer to #9553 * fix line marker * fix repo search * Fix single line select * properly load settings * npm uninstall highlight.js * review suggestion * code review * forgot to call function * fix test * Apply suggestions from code review suggestions from @silverwind thanks Co-authored-by: silverwind <me@silverwind.io> * code review * copy/paste error * Use const for highlight size limit * Update web_src/less/_repository.less Co-authored-by: Lauris BH <lauris@nix.lv> * update size limit to 1MB and other styling tweaks * fix highlighting for certain diff sections * fix test * add worker back as suggested Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
		
							
								
								
									
										56
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/handlebars.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/handlebars.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| package h | ||||
|  | ||||
| import ( | ||||
| 	. "github.com/alecthomas/chroma" // nolint | ||||
| 	"github.com/alecthomas/chroma/lexers/internal" | ||||
| ) | ||||
|  | ||||
| // Handlebars lexer. | ||||
| var Handlebars = internal.Register(MustNewLexer( | ||||
| 	&Config{ | ||||
| 		Name:      "Handlebars", | ||||
| 		Aliases:   []string{"handlebars"}, | ||||
| 		Filenames: []string{"*.handlebars"}, | ||||
| 		MimeTypes: []string{}, | ||||
| 	}, | ||||
| 	Rules{ | ||||
| 		"root": { | ||||
| 			{`[^{]+`, Other, nil}, | ||||
| 			{`\{\{!.*\}\}`, Comment, nil}, | ||||
| 			{`(\{\{\{)(\s*)`, ByGroups(CommentSpecial, Text), Push("tag")}, | ||||
| 			{`(\{\{)(\s*)`, ByGroups(CommentPreproc, Text), Push("tag")}, | ||||
| 		}, | ||||
| 		"tag": { | ||||
| 			{`\s+`, Text, nil}, | ||||
| 			{`\}\}\}`, CommentSpecial, Pop(1)}, | ||||
| 			{`\}\}`, CommentPreproc, Pop(1)}, | ||||
| 			{`([#/]*)(each|if|unless|else|with|log|in(?:line)?)`, ByGroups(Keyword, Keyword), nil}, | ||||
| 			{`#\*inline`, Keyword, nil}, | ||||
| 			{`([#/])([\w-]+)`, ByGroups(NameFunction, NameFunction), nil}, | ||||
| 			{`([\w-]+)(=)`, ByGroups(NameAttribute, Operator), nil}, | ||||
| 			{`(>)(\s*)(@partial-block)`, ByGroups(Keyword, Text, Keyword), nil}, | ||||
| 			{`(#?>)(\s*)([\w-]+)`, ByGroups(Keyword, Text, NameVariable), nil}, | ||||
| 			{`(>)(\s*)(\()`, ByGroups(Keyword, Text, Punctuation), Push("dynamic-partial")}, | ||||
| 			Include("generic"), | ||||
| 		}, | ||||
| 		"dynamic-partial": { | ||||
| 			{`\s+`, Text, nil}, | ||||
| 			{`\)`, Punctuation, Pop(1)}, | ||||
| 			{`(lookup)(\s+)(\.|this)(\s+)`, ByGroups(Keyword, Text, NameVariable, Text), nil}, | ||||
| 			{`(lookup)(\s+)(\S+)`, ByGroups(Keyword, Text, UsingSelf("variable")), nil}, | ||||
| 			{`[\w-]+`, NameFunction, nil}, | ||||
| 			Include("generic"), | ||||
| 		}, | ||||
| 		"variable": { | ||||
| 			{`[a-zA-Z][\w-]*`, NameVariable, nil}, | ||||
| 			{`\.[\w-]+`, NameVariable, nil}, | ||||
| 			{`(this\/|\.\/|(\.\.\/)+)[\w-]+`, NameVariable, nil}, | ||||
| 		}, | ||||
| 		"generic": { | ||||
| 			Include("variable"), | ||||
| 			{`:?"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, | ||||
| 			{`:?'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, | ||||
| 			{`[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?`, LiteralNumber, nil}, | ||||
| 		}, | ||||
| 	}, | ||||
| )) | ||||
							
								
								
									
										99
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/haskell.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/haskell.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,99 @@ | ||||
| package h | ||||
|  | ||||
| import ( | ||||
| 	. "github.com/alecthomas/chroma" // nolint | ||||
| 	"github.com/alecthomas/chroma/lexers/internal" | ||||
| ) | ||||
|  | ||||
| // Haskell lexer. | ||||
| var Haskell = internal.Register(MustNewLexer( | ||||
| 	&Config{ | ||||
| 		Name:      "Haskell", | ||||
| 		Aliases:   []string{"haskell", "hs"}, | ||||
| 		Filenames: []string{"*.hs"}, | ||||
| 		MimeTypes: []string{"text/x-haskell"}, | ||||
| 	}, | ||||
| 	Rules{ | ||||
| 		"root": { | ||||
| 			{`\s+`, Text, nil}, | ||||
| 			{`--(?![!#$%&*+./<=>?@^|_~:\\]).*?$`, CommentSingle, nil}, | ||||
| 			{`\{-`, CommentMultiline, Push("comment")}, | ||||
| 			{`\bimport\b`, KeywordReserved, Push("import")}, | ||||
| 			{`\bmodule\b`, KeywordReserved, Push("module")}, | ||||
| 			{`\berror\b`, NameException, nil}, | ||||
| 			{`\b(case|class|data|default|deriving|do|else|family|if|in|infix[lr]?|instance|let|newtype|of|then|type|where|_)(?!\')\b`, KeywordReserved, nil}, | ||||
| 			{`'[^\\]'`, LiteralStringChar, nil}, | ||||
| 			{`^[_a-zµß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķ-ĸĺļľŀłńņň-ʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌ-ƍƒƕƙ-ƛƞơƣƥƨƪ-ƫƭưƴƶƹ-ƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜ-ǝǟǡǣǥǧǩǫǭǯ-ǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿ-ɀɂɇɉɋɍɏ-ʓʕ-ʯͱͳͷͻ-ͽΐά-ώϐ-ϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻ-ϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎ-ӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧա-ևᴀ-ᴫᵫ-ᵷᵹ-ᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶ-ᾷιῂ-ῄῆ-ῇῐ-ΐῖ-ῗῠ-ῧῲ-ῴῶ-ῷℊℎ-ℏℓℯℴℹℼ-ℽⅆ-ⅉⅎↄⰰ-ⱞⱡⱥ-ⱦⱨⱪⱬⱱⱳ-ⱴⱶ-ⱻⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ-ⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝱ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓꞡꞣꞥꞧꞩꟺff-stﬓ-ﬗa-z𐐨-𐑏𝐚-𝐳𝑎-𝑔𝑖-𝑧𝒂-𝒛𝒶-𝒹𝒻𝒽-𝓃𝓅-𝓏𝓪-𝔃𝔞-𝔷𝕒-𝕫𝖆-𝖟𝖺-𝗓𝗮-𝘇𝘢-𝘻𝙖-𝙯𝚊-𝚥𝛂-𝛚𝛜-𝛡𝛼-𝜔𝜖-𝜛𝜶-𝝎𝝐-𝝕𝝰-𝞈𝞊-𝞏𝞪-𝟂𝟄-𝟉𝟋][\w\']*`, NameFunction, nil}, | ||||
| 			{`'?[_a-zµß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķ-ĸĺļľŀłńņň-ʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌ-ƍƒƕƙ-ƛƞơƣƥƨƪ-ƫƭưƴƶƹ-ƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜ-ǝǟǡǣǥǧǩǫǭǯ-ǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿ-ɀɂɇɉɋɍɏ-ʓʕ-ʯͱͳͷͻ-ͽΐά-ώϐ-ϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻ-ϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎ-ӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧա-ևᴀ-ᴫᵫ-ᵷᵹ-ᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶ-ᾷιῂ-ῄῆ-ῇῐ-ΐῖ-ῗῠ-ῧῲ-ῴῶ-ῷℊℎ-ℏℓℯℴℹℼ-ℽⅆ-ⅉⅎↄⰰ-ⱞⱡⱥ-ⱦⱨⱪⱬⱱⱳ-ⱴⱶ-ⱻⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ-ⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝱ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓꞡꞣꞥꞧꞩꟺff-stﬓ-ﬗa-z𐐨-𐑏𝐚-𝐳𝑎-𝑔𝑖-𝑧𝒂-𝒛𝒶-𝒹𝒻𝒽-𝓃𝓅-𝓏𝓪-𝔃𝔞-𝔷𝕒-𝕫𝖆-𝖟𝖺-𝗓𝗮-𝘇𝘢-𝘻𝙖-𝙯𝚊-𝚥𝛂-𝛚𝛜-𝛡𝛼-𝜔𝜖-𝜛𝜶-𝝎𝝐-𝝕𝝰-𝞈𝞊-𝞏𝞪-𝟂𝟄-𝟉𝟋][\w']*`, Name, nil}, | ||||
| 			{`('')?[A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w\']*`, KeywordType, nil}, | ||||
| 			{`(')[A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w\']*`, KeywordType, nil}, | ||||
| 			{`(')\[[^\]]*\]`, KeywordType, nil}, | ||||
| 			{`(')\([^)]*\)`, KeywordType, nil}, | ||||
| 			{`\\(?![:!#$%&*+.\\/<=>?@^|~-]+)`, NameFunction, nil}, | ||||
| 			{`(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)`, OperatorWord, nil}, | ||||
| 			{`:[:!#$%&*+.\\/<=>?@^|~-]*`, KeywordType, nil}, | ||||
| 			{`[:!#$%&*+.\\/<=>?@^|~-]+`, Operator, nil}, | ||||
| 			{`\d+[eE][+-]?\d+`, LiteralNumberFloat, nil}, | ||||
| 			{`\d+\.\d+([eE][+-]?\d+)?`, LiteralNumberFloat, nil}, | ||||
| 			{`0[oO][0-7]+`, LiteralNumberOct, nil}, | ||||
| 			{`0[xX][\da-fA-F]+`, LiteralNumberHex, nil}, | ||||
| 			{`\d+`, LiteralNumberInteger, nil}, | ||||
| 			{`'`, LiteralStringChar, Push("character")}, | ||||
| 			{`"`, LiteralString, Push("string")}, | ||||
| 			{`\[\]`, KeywordType, nil}, | ||||
| 			{`\(\)`, NameBuiltin, nil}, | ||||
| 			{"[][(),;`{}]", Punctuation, nil}, | ||||
| 		}, | ||||
| 		"import": { | ||||
| 			{`\s+`, Text, nil}, | ||||
| 			{`"`, LiteralString, Push("string")}, | ||||
| 			{`\)`, Punctuation, Pop(1)}, | ||||
| 			{`qualified\b`, Keyword, nil}, | ||||
| 			{`([A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*)(\s+)(as)(\s+)([A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*)`, ByGroups(NameNamespace, Text, Keyword, Text, Name), Pop(1)}, | ||||
| 			{`([A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*)(\s+)(hiding)(\s+)(\()`, ByGroups(NameNamespace, Text, Keyword, Text, Punctuation), Push("funclist")}, | ||||
| 			{`([A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*)(\s+)(\()`, ByGroups(NameNamespace, Text, Punctuation), Push("funclist")}, | ||||
| 			{`[\w.]+`, NameNamespace, Pop(1)}, | ||||
| 		}, | ||||
| 		"module": { | ||||
| 			{`\s+`, Text, nil}, | ||||
| 			{`([A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*)(\s+)(\()`, ByGroups(NameNamespace, Text, Punctuation), Push("funclist")}, | ||||
| 			{`[A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*`, NameNamespace, Pop(1)}, | ||||
| 		}, | ||||
| 		"funclist": { | ||||
| 			{`\s+`, Text, nil}, | ||||
| 			{`[A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊]\w*`, KeywordType, nil}, | ||||
| 			{`(_[\w\']+|[a-zµß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķ-ĸĺļľŀłńņň-ʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌ-ƍƒƕƙ-ƛƞơƣƥƨƪ-ƫƭưƴƶƹ-ƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜ-ǝǟǡǣǥǧǩǫǭǯ-ǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿ-ɀɂɇɉɋɍɏ-ʓʕ-ʯͱͳͷͻ-ͽΐά-ώϐ-ϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻ-ϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎ-ӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧա-ևᴀ-ᴫᵫ-ᵷᵹ-ᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶ-ᾷιῂ-ῄῆ-ῇῐ-ΐῖ-ῗῠ-ῧῲ-ῴῶ-ῷℊℎ-ℏℓℯℴℹℼ-ℽⅆ-ⅉⅎↄⰰ-ⱞⱡⱥ-ⱦⱨⱪⱬⱱⱳ-ⱴⱶ-ⱻⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ-ⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝱ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓꞡꞣꞥꞧꞩꟺff-stﬓ-ﬗa-z𐐨-𐑏𝐚-𝐳𝑎-𝑔𝑖-𝑧𝒂-𝒛𝒶-𝒹𝒻𝒽-𝓃𝓅-𝓏𝓪-𝔃𝔞-𝔷𝕒-𝕫𝖆-𝖟𝖺-𝗓𝗮-𝘇𝘢-𝘻𝙖-𝙯𝚊-𝚥𝛂-𝛚𝛜-𝛡𝛼-𝜔𝜖-𝜛𝜶-𝝎𝝐-𝝕𝝰-𝞈𝞊-𝞏𝞪-𝟂𝟄-𝟉𝟋][\w\']*)`, NameFunction, nil}, | ||||
| 			{`--(?![!#$%&*+./<=>?@^|_~:\\]).*?$`, CommentSingle, nil}, | ||||
| 			{`\{-`, CommentMultiline, Push("comment")}, | ||||
| 			{`,`, Punctuation, nil}, | ||||
| 			{`[:!#$%&*+.\\/<=>?@^|~-]+`, Operator, nil}, | ||||
| 			{`\(`, Punctuation, Push("funclist", "funclist")}, | ||||
| 			{`\)`, Punctuation, Pop(2)}, | ||||
| 		}, | ||||
| 		"comment": { | ||||
| 			{`[^-{}]+`, CommentMultiline, nil}, | ||||
| 			{`\{-`, CommentMultiline, Push()}, | ||||
| 			{`-\}`, CommentMultiline, Pop(1)}, | ||||
| 			{`[-{}]`, CommentMultiline, nil}, | ||||
| 		}, | ||||
| 		"character": { | ||||
| 			{`[^\\']'`, LiteralStringChar, Pop(1)}, | ||||
| 			{`\\`, LiteralStringEscape, Push("escape")}, | ||||
| 			{`'`, LiteralStringChar, Pop(1)}, | ||||
| 		}, | ||||
| 		"string": { | ||||
| 			{`[^\\"]+`, LiteralString, nil}, | ||||
| 			{`\\`, LiteralStringEscape, Push("escape")}, | ||||
| 			{`"`, LiteralString, Pop(1)}, | ||||
| 		}, | ||||
| 		"escape": { | ||||
| 			{`[abfnrtv"\'&\\]`, LiteralStringEscape, Pop(1)}, | ||||
| 			{`\^[][A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊@^_]`, LiteralStringEscape, Pop(1)}, | ||||
| 			{`NUL|SOH|[SE]TX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|S[OI]|DLE|DC[1-4]|NAK|SYN|ETB|CAN|EM|SUB|ESC|[FGRU]S|SP|DEL`, LiteralStringEscape, Pop(1)}, | ||||
| 			{`o[0-7]+`, LiteralStringEscape, Pop(1)}, | ||||
| 			{`x[\da-fA-F]+`, LiteralStringEscape, Pop(1)}, | ||||
| 			{`\d+`, LiteralStringEscape, Pop(1)}, | ||||
| 			{`\s+\\`, LiteralStringEscape, Pop(1)}, | ||||
| 		}, | ||||
| 	}, | ||||
| )) | ||||
							
								
								
									
										642
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/haxe.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										642
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/haxe.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,642 @@ | ||||
| package h | ||||
|  | ||||
| import ( | ||||
| 	. "github.com/alecthomas/chroma" // nolint | ||||
| 	"github.com/alecthomas/chroma/lexers/internal" | ||||
| ) | ||||
|  | ||||
| // Haxe lexer. | ||||
| var Haxe = internal.Register(MustNewLexer( | ||||
| 	&Config{ | ||||
| 		Name:      "Haxe", | ||||
| 		Aliases:   []string{"hx", "haxe", "hxsl"}, | ||||
| 		Filenames: []string{"*.hx", "*.hxsl"}, | ||||
| 		MimeTypes: []string{"text/haxe", "text/x-haxe", "text/x-hx"}, | ||||
| 		DotAll:    true, | ||||
| 	}, | ||||
| 	Rules{ | ||||
| 		"root": { | ||||
| 			Include("spaces"), | ||||
| 			Include("meta"), | ||||
| 			{`(?:package)\b`, KeywordNamespace, Push("semicolon", "package")}, | ||||
| 			{`(?:import)\b`, KeywordNamespace, Push("semicolon", "import")}, | ||||
| 			{`(?:using)\b`, KeywordNamespace, Push("semicolon", "using")}, | ||||
| 			{`(?:extern|private)\b`, KeywordDeclaration, nil}, | ||||
| 			{`(?:abstract)\b`, KeywordDeclaration, Push("abstract")}, | ||||
| 			{`(?:class|interface)\b`, KeywordDeclaration, Push("class")}, | ||||
| 			{`(?:enum)\b`, KeywordDeclaration, Push("enum")}, | ||||
| 			{`(?:typedef)\b`, KeywordDeclaration, Push("typedef")}, | ||||
| 			{`(?=.)`, Text, Push("expr-statement")}, | ||||
| 		}, | ||||
| 		"spaces": { | ||||
| 			{`\s+`, Text, nil}, | ||||
| 			{`//[^\n\r]*`, CommentSingle, nil}, | ||||
| 			{`/\*.*?\*/`, CommentMultiline, nil}, | ||||
| 			{`(#)(if|elseif|else|end|error)\b`, CommentPreproc, MutatorFunc(haxePreProcMutator)}, | ||||
| 		}, | ||||
| 		"string-single-interpol": { | ||||
| 			{`\$\{`, LiteralStringInterpol, Push("string-interpol-close", "expr")}, | ||||
| 			{`\$\$`, LiteralStringEscape, nil}, | ||||
| 			{`\$(?=(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))`, LiteralStringInterpol, Push("ident")}, | ||||
| 			Include("string-single"), | ||||
| 		}, | ||||
| 		"string-single": { | ||||
| 			{`'`, LiteralStringSingle, Pop(1)}, | ||||
| 			{`\\.`, LiteralStringEscape, nil}, | ||||
| 			{`.`, LiteralStringSingle, nil}, | ||||
| 		}, | ||||
| 		"string-double": { | ||||
| 			{`"`, LiteralStringDouble, Pop(1)}, | ||||
| 			{`\\.`, LiteralStringEscape, nil}, | ||||
| 			{`.`, LiteralStringDouble, nil}, | ||||
| 		}, | ||||
| 		"string-interpol-close": { | ||||
| 			{`\$(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, LiteralStringInterpol, nil}, | ||||
| 			{`\}`, LiteralStringInterpol, Pop(1)}, | ||||
| 		}, | ||||
| 		"package": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil}, | ||||
| 			{`\.`, Punctuation, Push("import-ident")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"import": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil}, | ||||
| 			{`\*`, Keyword, nil}, | ||||
| 			{`\.`, Punctuation, Push("import-ident")}, | ||||
| 			{`in`, KeywordNamespace, Push("ident")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"import-ident": { | ||||
| 			Include("spaces"), | ||||
| 			{`\*`, Keyword, Pop(1)}, | ||||
| 			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, Pop(1)}, | ||||
| 		}, | ||||
| 		"using": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil}, | ||||
| 			{`\.`, Punctuation, Push("import-ident")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"preproc-error": { | ||||
| 			{`\s+`, CommentPreproc, nil}, | ||||
| 			{`'`, LiteralStringSingle, Push("#pop", "string-single")}, | ||||
| 			{`"`, LiteralStringDouble, Push("#pop", "string-double")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"preproc-expr": { | ||||
| 			{`\s+`, CommentPreproc, nil}, | ||||
| 			{`\!`, CommentPreproc, nil}, | ||||
| 			{`\(`, CommentPreproc, Push("#pop", "preproc-parenthesis")}, | ||||
| 			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, CommentPreproc, Pop(1)}, | ||||
| 			{`\.[0-9]+`, LiteralNumberFloat, nil}, | ||||
| 			{`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, nil}, | ||||
| 			{`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, nil}, | ||||
| 			{`[0-9]+\.[0-9]+`, LiteralNumberFloat, nil}, | ||||
| 			{`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, nil}, | ||||
| 			{`0x[0-9a-fA-F]+`, LiteralNumberHex, nil}, | ||||
| 			{`[0-9]+`, LiteralNumberInteger, nil}, | ||||
| 			{`'`, LiteralStringSingle, Push("#pop", "string-single")}, | ||||
| 			{`"`, LiteralStringDouble, Push("#pop", "string-double")}, | ||||
| 		}, | ||||
| 		"preproc-parenthesis": { | ||||
| 			{`\s+`, CommentPreproc, nil}, | ||||
| 			{`\)`, CommentPreproc, Pop(1)}, | ||||
| 			Default(Push("preproc-expr-in-parenthesis")), | ||||
| 		}, | ||||
| 		"preproc-expr-chain": { | ||||
| 			{`\s+`, CommentPreproc, nil}, | ||||
| 			{`(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|/|\-|=>|=)`, CommentPreproc, Push("#pop", "preproc-expr-in-parenthesis")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"preproc-expr-in-parenthesis": { | ||||
| 			{`\s+`, CommentPreproc, nil}, | ||||
| 			{`\!`, CommentPreproc, nil}, | ||||
| 			{`\(`, CommentPreproc, Push("#pop", "preproc-expr-chain", "preproc-parenthesis")}, | ||||
| 			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, CommentPreproc, Push("#pop", "preproc-expr-chain")}, | ||||
| 			{`\.[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")}, | ||||
| 			{`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")}, | ||||
| 			{`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")}, | ||||
| 			{`[0-9]+\.[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")}, | ||||
| 			{`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")}, | ||||
| 			{`0x[0-9a-fA-F]+`, LiteralNumberHex, Push("#pop", "preproc-expr-chain")}, | ||||
| 			{`[0-9]+`, LiteralNumberInteger, Push("#pop", "preproc-expr-chain")}, | ||||
| 			{`'`, LiteralStringSingle, Push("#pop", "preproc-expr-chain", "string-single")}, | ||||
| 			{`"`, LiteralStringDouble, Push("#pop", "preproc-expr-chain", "string-double")}, | ||||
| 		}, | ||||
| 		"abstract": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("abstract-body"), Push("abstract-relation"), Push("abstract-opaque"), Push("type-param-constraint"), Push("type-name")), | ||||
| 		}, | ||||
| 		"abstract-body": { | ||||
| 			Include("spaces"), | ||||
| 			{`\{`, Punctuation, Push("#pop", "class-body")}, | ||||
| 		}, | ||||
| 		"abstract-opaque": { | ||||
| 			Include("spaces"), | ||||
| 			{`\(`, Punctuation, Push("#pop", "parenthesis-close", "type")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"abstract-relation": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:to|from)`, KeywordDeclaration, Push("type")}, | ||||
| 			{`,`, Punctuation, nil}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"meta": { | ||||
| 			Include("spaces"), | ||||
| 			{`@`, NameDecorator, Push("meta-body", "meta-ident", "meta-colon")}, | ||||
| 		}, | ||||
| 		"meta-colon": { | ||||
| 			Include("spaces"), | ||||
| 			{`:`, NameDecorator, Pop(1)}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"meta-ident": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameDecorator, Pop(1)}, | ||||
| 		}, | ||||
| 		"meta-body": { | ||||
| 			Include("spaces"), | ||||
| 			{`\(`, NameDecorator, Push("#pop", "meta-call")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"meta-call": { | ||||
| 			Include("spaces"), | ||||
| 			{`\)`, NameDecorator, Pop(1)}, | ||||
| 			Default(Pop(1), Push("meta-call-sep"), Push("expr")), | ||||
| 		}, | ||||
| 		"meta-call-sep": { | ||||
| 			Include("spaces"), | ||||
| 			{`\)`, NameDecorator, Pop(1)}, | ||||
| 			{`,`, Punctuation, Push("#pop", "meta-call")}, | ||||
| 		}, | ||||
| 		"typedef": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("typedef-body"), Push("type-param-constraint"), Push("type-name")), | ||||
| 		}, | ||||
| 		"typedef-body": { | ||||
| 			Include("spaces"), | ||||
| 			{`=`, Operator, Push("#pop", "optional-semicolon", "type")}, | ||||
| 		}, | ||||
| 		"enum": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("enum-body"), Push("bracket-open"), Push("type-param-constraint"), Push("type-name")), | ||||
| 		}, | ||||
| 		"enum-body": { | ||||
| 			Include("spaces"), | ||||
| 			Include("meta"), | ||||
| 			{`\}`, Punctuation, Pop(1)}, | ||||
| 			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("enum-member", "type-param-constraint")}, | ||||
| 		}, | ||||
| 		"enum-member": { | ||||
| 			Include("spaces"), | ||||
| 			{`\(`, Punctuation, Push("#pop", "semicolon", "flag", "function-param")}, | ||||
| 			Default(Pop(1), Push("semicolon"), Push("flag")), | ||||
| 		}, | ||||
| 		"class": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("class-body"), Push("bracket-open"), Push("extends"), Push("type-param-constraint"), Push("type-name")), | ||||
| 		}, | ||||
| 		"extends": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:extends|implements)\b`, KeywordDeclaration, Push("type")}, | ||||
| 			{`,`, Punctuation, nil}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"bracket-open": { | ||||
| 			Include("spaces"), | ||||
| 			{`\{`, Punctuation, Pop(1)}, | ||||
| 		}, | ||||
| 		"bracket-close": { | ||||
| 			Include("spaces"), | ||||
| 			{`\}`, Punctuation, Pop(1)}, | ||||
| 		}, | ||||
| 		"class-body": { | ||||
| 			Include("spaces"), | ||||
| 			Include("meta"), | ||||
| 			{`\}`, Punctuation, Pop(1)}, | ||||
| 			{`(?:static|public|private|override|dynamic|inline|macro)\b`, KeywordDeclaration, nil}, | ||||
| 			Default(Push("class-member")), | ||||
| 		}, | ||||
| 		"class-member": { | ||||
| 			Include("spaces"), | ||||
| 			{`(var)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "var")}, | ||||
| 			{`(function)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "class-method")}, | ||||
| 		}, | ||||
| 		"function-local": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameFunction, Push("#pop", "optional-expr", "flag", "function-param", "parenthesis-open", "type-param-constraint")}, | ||||
| 			Default(Pop(1), Push("optional-expr"), Push("flag"), Push("function-param"), Push("parenthesis-open"), Push("type-param-constraint")), | ||||
| 		}, | ||||
| 		"optional-expr": { | ||||
| 			Include("spaces"), | ||||
| 			Include("expr"), | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"class-method": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameFunction, Push("#pop", "optional-expr", "flag", "function-param", "parenthesis-open", "type-param-constraint")}, | ||||
| 		}, | ||||
| 		"function-param": { | ||||
| 			Include("spaces"), | ||||
| 			{`\)`, Punctuation, Pop(1)}, | ||||
| 			{`\?`, Punctuation, nil}, | ||||
| 			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "function-param-sep", "assign", "flag")}, | ||||
| 		}, | ||||
| 		"function-param-sep": { | ||||
| 			Include("spaces"), | ||||
| 			{`\)`, Punctuation, Pop(1)}, | ||||
| 			{`,`, Punctuation, Push("#pop", "function-param")}, | ||||
| 		}, | ||||
| 		"prop-get-set": { | ||||
| 			Include("spaces"), | ||||
| 			{`\(`, Punctuation, Push("#pop", "parenthesis-close", "prop-get-set-opt", "comma", "prop-get-set-opt")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"prop-get-set-opt": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:default|null|never|dynamic|get|set)\b`, Keyword, Pop(1)}, | ||||
| 			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Text, Pop(1)}, | ||||
| 		}, | ||||
| 		"expr-statement": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("optional-semicolon"), Push("expr")), | ||||
| 		}, | ||||
| 		"expr": { | ||||
| 			Include("spaces"), | ||||
| 			{`@`, NameDecorator, Push("#pop", "optional-expr", "meta-body", "meta-ident", "meta-colon")}, | ||||
| 			{`(?:\+\+|\-\-|~(?!/)|!|\-)`, Operator, nil}, | ||||
| 			{`\(`, Punctuation, Push("#pop", "expr-chain", "parenthesis")}, | ||||
| 			{`(?:static|public|private|override|dynamic|inline)\b`, KeywordDeclaration, nil}, | ||||
| 			{`(?:function)\b`, KeywordDeclaration, Push("#pop", "expr-chain", "function-local")}, | ||||
| 			{`\{`, Punctuation, Push("#pop", "expr-chain", "bracket")}, | ||||
| 			{`(?:true|false|null)\b`, KeywordConstant, Push("#pop", "expr-chain")}, | ||||
| 			{`(?:this)\b`, Keyword, Push("#pop", "expr-chain")}, | ||||
| 			{`(?:cast)\b`, Keyword, Push("#pop", "expr-chain", "cast")}, | ||||
| 			{`(?:try)\b`, Keyword, Push("#pop", "catch", "expr")}, | ||||
| 			{`(?:var)\b`, KeywordDeclaration, Push("#pop", "var")}, | ||||
| 			{`(?:new)\b`, Keyword, Push("#pop", "expr-chain", "new")}, | ||||
| 			{`(?:switch)\b`, Keyword, Push("#pop", "switch")}, | ||||
| 			{`(?:if)\b`, Keyword, Push("#pop", "if")}, | ||||
| 			{`(?:do)\b`, Keyword, Push("#pop", "do")}, | ||||
| 			{`(?:while)\b`, Keyword, Push("#pop", "while")}, | ||||
| 			{`(?:for)\b`, Keyword, Push("#pop", "for")}, | ||||
| 			{`(?:untyped|throw)\b`, Keyword, nil}, | ||||
| 			{`(?:return)\b`, Keyword, Push("#pop", "optional-expr")}, | ||||
| 			{`(?:macro)\b`, Keyword, Push("#pop", "macro")}, | ||||
| 			{`(?:continue|break)\b`, Keyword, Pop(1)}, | ||||
| 			{`(?:\$\s*[a-z]\b|\$(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)))`, Name, Push("#pop", "dollar")}, | ||||
| 			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "expr-chain")}, | ||||
| 			{`\.[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")}, | ||||
| 			{`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")}, | ||||
| 			{`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")}, | ||||
| 			{`[0-9]+\.[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")}, | ||||
| 			{`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Push("#pop", "expr-chain")}, | ||||
| 			{`0x[0-9a-fA-F]+`, LiteralNumberHex, Push("#pop", "expr-chain")}, | ||||
| 			{`[0-9]+`, LiteralNumberInteger, Push("#pop", "expr-chain")}, | ||||
| 			{`'`, LiteralStringSingle, Push("#pop", "expr-chain", "string-single-interpol")}, | ||||
| 			{`"`, LiteralStringDouble, Push("#pop", "expr-chain", "string-double")}, | ||||
| 			{`~/(\\\\|\\/|[^/\n])*/[gimsu]*`, LiteralStringRegex, Push("#pop", "expr-chain")}, | ||||
| 			{`\[`, Punctuation, Push("#pop", "expr-chain", "array-decl")}, | ||||
| 		}, | ||||
| 		"expr-chain": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:\+\+|\-\-)`, Operator, nil}, | ||||
| 			{`(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|/|\-|=>|=)`, Operator, Push("#pop", "expr")}, | ||||
| 			{`(?:in)\b`, Keyword, Push("#pop", "expr")}, | ||||
| 			{`\?`, Operator, Push("#pop", "expr", "ternary", "expr")}, | ||||
| 			{`(\.)((?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))`, ByGroups(Punctuation, Name), nil}, | ||||
| 			{`\[`, Punctuation, Push("array-access")}, | ||||
| 			{`\(`, Punctuation, Push("call")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"macro": { | ||||
| 			Include("spaces"), | ||||
| 			Include("meta"), | ||||
| 			{`:`, Punctuation, Push("#pop", "type")}, | ||||
| 			{`(?:extern|private)\b`, KeywordDeclaration, nil}, | ||||
| 			{`(?:abstract)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "abstract")}, | ||||
| 			{`(?:class|interface)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "macro-class")}, | ||||
| 			{`(?:enum)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "enum")}, | ||||
| 			{`(?:typedef)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "typedef")}, | ||||
| 			Default(Pop(1), Push("expr")), | ||||
| 		}, | ||||
| 		"macro-class": { | ||||
| 			{`\{`, Punctuation, Push("#pop", "class-body")}, | ||||
| 			Include("class"), | ||||
| 		}, | ||||
| 		"cast": { | ||||
| 			Include("spaces"), | ||||
| 			{`\(`, Punctuation, Push("#pop", "parenthesis-close", "cast-type", "expr")}, | ||||
| 			Default(Pop(1), Push("expr")), | ||||
| 		}, | ||||
| 		"cast-type": { | ||||
| 			Include("spaces"), | ||||
| 			{`,`, Punctuation, Push("#pop", "type")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"catch": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:catch)\b`, Keyword, Push("expr", "function-param", "parenthesis-open")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"do": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("do-while"), Push("expr")), | ||||
| 		}, | ||||
| 		"do-while": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:while)\b`, Keyword, Push("#pop", "parenthesis", "parenthesis-open")}, | ||||
| 		}, | ||||
| 		"while": { | ||||
| 			Include("spaces"), | ||||
| 			{`\(`, Punctuation, Push("#pop", "expr", "parenthesis")}, | ||||
| 		}, | ||||
| 		"for": { | ||||
| 			Include("spaces"), | ||||
| 			{`\(`, Punctuation, Push("#pop", "expr", "parenthesis")}, | ||||
| 		}, | ||||
| 		"if": { | ||||
| 			Include("spaces"), | ||||
| 			{`\(`, Punctuation, Push("#pop", "else", "optional-semicolon", "expr", "parenthesis")}, | ||||
| 		}, | ||||
| 		"else": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:else)\b`, Keyword, Push("#pop", "expr")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"switch": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("switch-body"), Push("bracket-open"), Push("expr")), | ||||
| 		}, | ||||
| 		"switch-body": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:case|default)\b`, Keyword, Push("case-block", "case")}, | ||||
| 			{`\}`, Punctuation, Pop(1)}, | ||||
| 		}, | ||||
| 		"case": { | ||||
| 			Include("spaces"), | ||||
| 			{`:`, Punctuation, Pop(1)}, | ||||
| 			Default(Pop(1), Push("case-sep"), Push("case-guard"), Push("expr")), | ||||
| 		}, | ||||
| 		"case-sep": { | ||||
| 			Include("spaces"), | ||||
| 			{`:`, Punctuation, Pop(1)}, | ||||
| 			{`,`, Punctuation, Push("#pop", "case")}, | ||||
| 		}, | ||||
| 		"case-guard": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:if)\b`, Keyword, Push("#pop", "parenthesis", "parenthesis-open")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"case-block": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?!(?:case|default)\b|\})`, Keyword, Push("expr-statement")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"new": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("call"), Push("parenthesis-open"), Push("type")), | ||||
| 		}, | ||||
| 		"array-decl": { | ||||
| 			Include("spaces"), | ||||
| 			{`\]`, Punctuation, Pop(1)}, | ||||
| 			Default(Pop(1), Push("array-decl-sep"), Push("expr")), | ||||
| 		}, | ||||
| 		"array-decl-sep": { | ||||
| 			Include("spaces"), | ||||
| 			{`\]`, Punctuation, Pop(1)}, | ||||
| 			{`,`, Punctuation, Push("#pop", "array-decl")}, | ||||
| 		}, | ||||
| 		"array-access": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("array-access-close"), Push("expr")), | ||||
| 		}, | ||||
| 		"array-access-close": { | ||||
| 			Include("spaces"), | ||||
| 			{`\]`, Punctuation, Pop(1)}, | ||||
| 		}, | ||||
| 		"comma": { | ||||
| 			Include("spaces"), | ||||
| 			{`,`, Punctuation, Pop(1)}, | ||||
| 		}, | ||||
| 		"colon": { | ||||
| 			Include("spaces"), | ||||
| 			{`:`, Punctuation, Pop(1)}, | ||||
| 		}, | ||||
| 		"semicolon": { | ||||
| 			Include("spaces"), | ||||
| 			{`;`, Punctuation, Pop(1)}, | ||||
| 		}, | ||||
| 		"optional-semicolon": { | ||||
| 			Include("spaces"), | ||||
| 			{`;`, Punctuation, Pop(1)}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"ident": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Pop(1)}, | ||||
| 		}, | ||||
| 		"dollar": { | ||||
| 			Include("spaces"), | ||||
| 			{`\{`, Punctuation, Push("#pop", "expr-chain", "bracket-close", "expr")}, | ||||
| 			Default(Pop(1), Push("expr-chain")), | ||||
| 		}, | ||||
| 		"type-name": { | ||||
| 			Include("spaces"), | ||||
| 			{`_*[A-Z]\w*`, Name, Pop(1)}, | ||||
| 		}, | ||||
| 		"type-full-name": { | ||||
| 			Include("spaces"), | ||||
| 			{`\.`, Punctuation, Push("ident")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"type": { | ||||
| 			Include("spaces"), | ||||
| 			{`\?`, Punctuation, nil}, | ||||
| 			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "type-check", "type-full-name")}, | ||||
| 			{`\{`, Punctuation, Push("#pop", "type-check", "type-struct")}, | ||||
| 			{`\(`, Punctuation, Push("#pop", "type-check", "type-parenthesis")}, | ||||
| 		}, | ||||
| 		"type-parenthesis": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("parenthesis-close"), Push("type")), | ||||
| 		}, | ||||
| 		"type-check": { | ||||
| 			Include("spaces"), | ||||
| 			{`->`, Punctuation, Push("#pop", "type")}, | ||||
| 			{`<(?!=)`, Punctuation, Push("type-param")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"type-struct": { | ||||
| 			Include("spaces"), | ||||
| 			{`\}`, Punctuation, Pop(1)}, | ||||
| 			{`\?`, Punctuation, nil}, | ||||
| 			{`>`, Punctuation, Push("comma", "type")}, | ||||
| 			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "type-struct-sep", "type", "colon")}, | ||||
| 			Include("class-body"), | ||||
| 		}, | ||||
| 		"type-struct-sep": { | ||||
| 			Include("spaces"), | ||||
| 			{`\}`, Punctuation, Pop(1)}, | ||||
| 			{`,`, Punctuation, Push("#pop", "type-struct")}, | ||||
| 		}, | ||||
| 		"type-param-type": { | ||||
| 			{`\.[0-9]+`, LiteralNumberFloat, Pop(1)}, | ||||
| 			{`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Pop(1)}, | ||||
| 			{`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Pop(1)}, | ||||
| 			{`[0-9]+\.[0-9]+`, LiteralNumberFloat, Pop(1)}, | ||||
| 			{`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Pop(1)}, | ||||
| 			{`0x[0-9a-fA-F]+`, LiteralNumberHex, Pop(1)}, | ||||
| 			{`[0-9]+`, LiteralNumberInteger, Pop(1)}, | ||||
| 			{`'`, LiteralStringSingle, Push("#pop", "string-single")}, | ||||
| 			{`"`, LiteralStringDouble, Push("#pop", "string-double")}, | ||||
| 			{`~/(\\\\|\\/|[^/\n])*/[gim]*`, LiteralStringRegex, Pop(1)}, | ||||
| 			{`\[`, Operator, Push("#pop", "array-decl")}, | ||||
| 			Include("type"), | ||||
| 		}, | ||||
| 		"type-param": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("type-param-sep"), Push("type-param-type")), | ||||
| 		}, | ||||
| 		"type-param-sep": { | ||||
| 			Include("spaces"), | ||||
| 			{`>`, Punctuation, Pop(1)}, | ||||
| 			{`,`, Punctuation, Push("#pop", "type-param")}, | ||||
| 		}, | ||||
| 		"type-param-constraint": { | ||||
| 			Include("spaces"), | ||||
| 			{`<(?!=)`, Punctuation, Push("#pop", "type-param-constraint-sep", "type-param-constraint-flag", "type-name")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"type-param-constraint-sep": { | ||||
| 			Include("spaces"), | ||||
| 			{`>`, Punctuation, Pop(1)}, | ||||
| 			{`,`, Punctuation, Push("#pop", "type-param-constraint-sep", "type-param-constraint-flag", "type-name")}, | ||||
| 		}, | ||||
| 		"type-param-constraint-flag": { | ||||
| 			Include("spaces"), | ||||
| 			{`:`, Punctuation, Push("#pop", "type-param-constraint-flag-type")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"type-param-constraint-flag-type": { | ||||
| 			Include("spaces"), | ||||
| 			{`\(`, Punctuation, Push("#pop", "type-param-constraint-flag-type-sep", "type")}, | ||||
| 			Default(Pop(1), Push("type")), | ||||
| 		}, | ||||
| 		"type-param-constraint-flag-type-sep": { | ||||
| 			Include("spaces"), | ||||
| 			{`\)`, Punctuation, Pop(1)}, | ||||
| 			{`,`, Punctuation, Push("type")}, | ||||
| 		}, | ||||
| 		"parenthesis": { | ||||
| 			Include("spaces"), | ||||
| 			Default(Pop(1), Push("parenthesis-close"), Push("flag"), Push("expr")), | ||||
| 		}, | ||||
| 		"parenthesis-open": { | ||||
| 			Include("spaces"), | ||||
| 			{`\(`, Punctuation, Pop(1)}, | ||||
| 		}, | ||||
| 		"parenthesis-close": { | ||||
| 			Include("spaces"), | ||||
| 			{`\)`, Punctuation, Pop(1)}, | ||||
| 		}, | ||||
| 		"var": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Text, Push("#pop", "var-sep", "assign", "flag", "prop-get-set")}, | ||||
| 		}, | ||||
| 		"var-sep": { | ||||
| 			Include("spaces"), | ||||
| 			{`,`, Punctuation, Push("#pop", "var")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"assign": { | ||||
| 			Include("spaces"), | ||||
| 			{`=`, Operator, Push("#pop", "expr")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"flag": { | ||||
| 			Include("spaces"), | ||||
| 			{`:`, Punctuation, Push("#pop", "type")}, | ||||
| 			Default(Pop(1)), | ||||
| 		}, | ||||
| 		"ternary": { | ||||
| 			Include("spaces"), | ||||
| 			{`:`, Operator, Pop(1)}, | ||||
| 		}, | ||||
| 		"call": { | ||||
| 			Include("spaces"), | ||||
| 			{`\)`, Punctuation, Pop(1)}, | ||||
| 			Default(Pop(1), Push("call-sep"), Push("expr")), | ||||
| 		}, | ||||
| 		"call-sep": { | ||||
| 			Include("spaces"), | ||||
| 			{`\)`, Punctuation, Pop(1)}, | ||||
| 			{`,`, Punctuation, Push("#pop", "call")}, | ||||
| 		}, | ||||
| 		"bracket": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?!(?:\$\s*[a-z]\b|\$(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))))(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "bracket-check")}, | ||||
| 			{`'`, LiteralStringSingle, Push("#pop", "bracket-check", "string-single")}, | ||||
| 			{`"`, LiteralStringDouble, Push("#pop", "bracket-check", "string-double")}, | ||||
| 			Default(Pop(1), Push("block")), | ||||
| 		}, | ||||
| 		"bracket-check": { | ||||
| 			Include("spaces"), | ||||
| 			{`:`, Punctuation, Push("#pop", "object-sep", "expr")}, | ||||
| 			Default(Pop(1), Push("block"), Push("optional-semicolon"), Push("expr-chain")), | ||||
| 		}, | ||||
| 		"block": { | ||||
| 			Include("spaces"), | ||||
| 			{`\}`, Punctuation, Pop(1)}, | ||||
| 			Default(Push("expr-statement")), | ||||
| 		}, | ||||
| 		"object": { | ||||
| 			Include("spaces"), | ||||
| 			{`\}`, Punctuation, Pop(1)}, | ||||
| 			Default(Pop(1), Push("object-sep"), Push("expr"), Push("colon"), Push("ident-or-string")), | ||||
| 		}, | ||||
| 		"ident-or-string": { | ||||
| 			Include("spaces"), | ||||
| 			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Pop(1)}, | ||||
| 			{`'`, LiteralStringSingle, Push("#pop", "string-single")}, | ||||
| 			{`"`, LiteralStringDouble, Push("#pop", "string-double")}, | ||||
| 		}, | ||||
| 		"object-sep": { | ||||
| 			Include("spaces"), | ||||
| 			{`\}`, Punctuation, Pop(1)}, | ||||
| 			{`,`, Punctuation, Push("#pop", "object")}, | ||||
| 		}, | ||||
| 	}, | ||||
| )) | ||||
|  | ||||
| func haxePreProcMutator(state *LexerState) error { | ||||
| 	stack, ok := state.Get("haxe-pre-proc").([][]string) | ||||
| 	if !ok { | ||||
| 		stack = [][]string{} | ||||
| 	} | ||||
|  | ||||
| 	proc := state.Groups[2] | ||||
| 	switch proc { | ||||
| 	case "if": | ||||
| 		stack = append(stack, state.Stack) | ||||
| 	case "else", "elseif": | ||||
| 		if len(stack) > 0 { | ||||
| 			state.Stack = stack[len(stack)-1] | ||||
| 		} | ||||
| 	case "end": | ||||
| 		stack = stack[:len(stack)-1] | ||||
| 	} | ||||
|  | ||||
| 	if proc == "if" || proc == "elseif" { | ||||
| 		state.Stack = append(state.Stack, "preproc-expr") | ||||
| 	} | ||||
|  | ||||
| 	if proc == "error" { | ||||
| 		state.Stack = append(state.Stack, "preproc-error") | ||||
| 	} | ||||
| 	state.Set("haxe-pre-proc", stack) | ||||
| 	return nil | ||||
| } | ||||
							
								
								
									
										69
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/hcl.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/hcl.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| package h | ||||
|  | ||||
| import ( | ||||
| 	. "github.com/alecthomas/chroma" // nolint | ||||
| 	"github.com/alecthomas/chroma/lexers/internal" | ||||
| ) | ||||
|  | ||||
| // HCL lexer. | ||||
| var HCL = internal.Register(MustNewLexer( | ||||
| 	&Config{ | ||||
| 		Name:      "HCL", | ||||
| 		Aliases:   []string{"hcl"}, | ||||
| 		Filenames: []string{"*.hcl"}, | ||||
| 		MimeTypes: []string{"application/x-hcl"}, | ||||
| 	}, | ||||
| 	Rules{ | ||||
| 		"root": { | ||||
| 			Include("string"), | ||||
| 			Include("punctuation"), | ||||
| 			Include("curly"), | ||||
| 			Include("basic"), | ||||
| 			Include("whitespace"), | ||||
| 			{`[0-9]+`, LiteralNumber, nil}, | ||||
| 		}, | ||||
| 		"basic": { | ||||
| 			{Words(`\b`, `\b`, `true`, `false`), KeywordType, nil}, | ||||
| 			{`\s*/\*`, CommentMultiline, Push("comment")}, | ||||
| 			{`\s*#.*\n`, CommentSingle, nil}, | ||||
| 			{`(.*?)(\s*)(=)`, ByGroups(Name, Text, Operator), nil}, | ||||
| 			{`\d+`, Number, nil}, | ||||
| 			{`\b\w+\b`, Keyword, nil}, | ||||
| 			{`\$\{`, LiteralStringInterpol, Push("var_builtin")}, | ||||
| 		}, | ||||
| 		"function": { | ||||
| 			{`(\s+)(".*")(\s+)`, ByGroups(Text, LiteralString, Text), nil}, | ||||
| 			Include("punctuation"), | ||||
| 			Include("curly"), | ||||
| 		}, | ||||
| 		"var_builtin": { | ||||
| 			{`\$\{`, LiteralStringInterpol, Push()}, | ||||
| 			{Words(`\b`, `\b`, `concat`, `file`, `join`, `lookup`, `element`), NameBuiltin, nil}, | ||||
| 			Include("string"), | ||||
| 			Include("punctuation"), | ||||
| 			{`\s+`, Text, nil}, | ||||
| 			{`\}`, LiteralStringInterpol, Pop(1)}, | ||||
| 		}, | ||||
| 		"string": { | ||||
| 			{`(".*")`, ByGroups(LiteralStringDouble), nil}, | ||||
| 		}, | ||||
| 		"punctuation": { | ||||
| 			{`[\[\](),.]`, Punctuation, nil}, | ||||
| 		}, | ||||
| 		"curly": { | ||||
| 			{`\{`, TextPunctuation, nil}, | ||||
| 			{`\}`, TextPunctuation, nil}, | ||||
| 		}, | ||||
| 		"comment": { | ||||
| 			{`[^*/]`, CommentMultiline, nil}, | ||||
| 			{`/\*`, CommentMultiline, Push()}, | ||||
| 			{`\*/`, CommentMultiline, Pop(1)}, | ||||
| 			{`[*/]`, CommentMultiline, nil}, | ||||
| 		}, | ||||
| 		"whitespace": { | ||||
| 			{`\n`, Text, nil}, | ||||
| 			{`\s+`, Text, nil}, | ||||
| 			{`\\\n`, Text, nil}, | ||||
| 		}, | ||||
| 	}, | ||||
| )) | ||||
							
								
								
									
										67
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/hexdump.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/hexdump.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| package h | ||||
|  | ||||
| import ( | ||||
| 	. "github.com/alecthomas/chroma" // nolint | ||||
| 	"github.com/alecthomas/chroma/lexers/internal" | ||||
| ) | ||||
|  | ||||
| // Hexdump lexer. | ||||
| var Hexdump = internal.Register(MustNewLexer( | ||||
| 	&Config{ | ||||
| 		Name:      "Hexdump", | ||||
| 		Aliases:   []string{"hexdump"}, | ||||
| 		Filenames: []string{}, | ||||
| 		MimeTypes: []string{}, | ||||
| 	}, | ||||
| 	Rules{ | ||||
| 		"root": { | ||||
| 			{`\n`, Text, nil}, | ||||
| 			Include("offset"), | ||||
| 			{`([0-9A-Ha-h]{2})(\-)([0-9A-Ha-h]{2})`, ByGroups(LiteralNumberHex, Punctuation, LiteralNumberHex), nil}, | ||||
| 			{`[0-9A-Ha-h]{2}`, LiteralNumberHex, nil}, | ||||
| 			{`(\s{2,3})(\>)(.{16})(\<)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), Push("bracket-strings")}, | ||||
| 			{`(\s{2,3})(\|)(.{16})(\|)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), Push("piped-strings")}, | ||||
| 			{`(\s{2,3})(\>)(.{1,15})(\<)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), nil}, | ||||
| 			{`(\s{2,3})(\|)(.{1,15})(\|)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), nil}, | ||||
| 			{`(\s{2,3})(.{1,15})$`, ByGroups(Text, LiteralString), nil}, | ||||
| 			{`(\s{2,3})(.{16}|.{20})$`, ByGroups(Text, LiteralString), Push("nonpiped-strings")}, | ||||
| 			{`\s`, Text, nil}, | ||||
| 			{`^\*`, Punctuation, nil}, | ||||
| 		}, | ||||
| 		"offset": { | ||||
| 			{`^([0-9A-Ha-h]+)(:)`, ByGroups(NameLabel, Punctuation), Push("offset-mode")}, | ||||
| 			{`^[0-9A-Ha-h]+`, NameLabel, nil}, | ||||
| 		}, | ||||
| 		"offset-mode": { | ||||
| 			{`\s`, Text, Pop(1)}, | ||||
| 			{`[0-9A-Ha-h]+`, NameLabel, nil}, | ||||
| 			{`:`, Punctuation, nil}, | ||||
| 		}, | ||||
| 		"piped-strings": { | ||||
| 			{`\n`, Text, nil}, | ||||
| 			Include("offset"), | ||||
| 			{`[0-9A-Ha-h]{2}`, LiteralNumberHex, nil}, | ||||
| 			{`(\s{2,3})(\|)(.{1,16})(\|)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), nil}, | ||||
| 			{`\s`, Text, nil}, | ||||
| 			{`^\*`, Punctuation, nil}, | ||||
| 		}, | ||||
| 		"bracket-strings": { | ||||
| 			{`\n`, Text, nil}, | ||||
| 			Include("offset"), | ||||
| 			{`[0-9A-Ha-h]{2}`, LiteralNumberHex, nil}, | ||||
| 			{`(\s{2,3})(\>)(.{1,16})(\<)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), nil}, | ||||
| 			{`\s`, Text, nil}, | ||||
| 			{`^\*`, Punctuation, nil}, | ||||
| 		}, | ||||
| 		"nonpiped-strings": { | ||||
| 			{`\n`, Text, nil}, | ||||
| 			Include("offset"), | ||||
| 			{`([0-9A-Ha-h]{2})(\-)([0-9A-Ha-h]{2})`, ByGroups(LiteralNumberHex, Punctuation, LiteralNumberHex), nil}, | ||||
| 			{`[0-9A-Ha-h]{2}`, LiteralNumberHex, nil}, | ||||
| 			{`(\s{19,})(.{1,20}?)$`, ByGroups(Text, LiteralString), nil}, | ||||
| 			{`(\s{2,3})(.{1,20})$`, ByGroups(Text, LiteralString), nil}, | ||||
| 			{`\s`, Text, nil}, | ||||
| 			{`^\*`, Punctuation, nil}, | ||||
| 		}, | ||||
| 	}, | ||||
| )) | ||||
							
								
								
									
										59
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/html.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/html.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| package h | ||||
|  | ||||
| import ( | ||||
| 	. "github.com/alecthomas/chroma"          // nolint | ||||
| 	. "github.com/alecthomas/chroma/lexers/c" // nolint | ||||
| 	"github.com/alecthomas/chroma/lexers/internal" | ||||
| 	. "github.com/alecthomas/chroma/lexers/j" // nolint | ||||
| ) | ||||
|  | ||||
| // HTML lexer. | ||||
| var HTML = internal.Register(MustNewLexer( | ||||
| 	&Config{ | ||||
| 		Name:            "HTML", | ||||
| 		Aliases:         []string{"html"}, | ||||
| 		Filenames:       []string{"*.html", "*.htm", "*.xhtml", "*.xslt"}, | ||||
| 		MimeTypes:       []string{"text/html", "application/xhtml+xml"}, | ||||
| 		NotMultiline:    true, | ||||
| 		DotAll:          true, | ||||
| 		CaseInsensitive: true, | ||||
| 	}, | ||||
| 	Rules{ | ||||
| 		"root": { | ||||
| 			{`[^<&]+`, Text, nil}, | ||||
| 			{`&\S*?;`, NameEntity, nil}, | ||||
| 			{`\<\!\[CDATA\[.*?\]\]\>`, CommentPreproc, nil}, | ||||
| 			{`<!--`, Comment, Push("comment")}, | ||||
| 			{`<\?.*?\?>`, CommentPreproc, nil}, | ||||
| 			{`<![^>]*>`, CommentPreproc, nil}, | ||||
| 			{`(<)(\s*)(script)(\s*)`, ByGroups(Punctuation, Text, NameTag, Text), Push("script-content", "tag")}, | ||||
| 			{`(<)(\s*)(style)(\s*)`, ByGroups(Punctuation, Text, NameTag, Text), Push("style-content", "tag")}, | ||||
| 			{`(<)(\s*)([\w:.-]+)`, ByGroups(Punctuation, Text, NameTag), Push("tag")}, | ||||
| 			{`(<)(\s*)(/)(\s*)([\w:.-]+)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), nil}, | ||||
| 		}, | ||||
| 		"comment": { | ||||
| 			{`[^-]+`, Comment, nil}, | ||||
| 			{`-->`, Comment, Pop(1)}, | ||||
| 			{`-`, Comment, nil}, | ||||
| 		}, | ||||
| 		"tag": { | ||||
| 			{`\s+`, Text, nil}, | ||||
| 			{`([\w:-]+\s*)(=)(\s*)`, ByGroups(NameAttribute, Operator, Text), Push("attr")}, | ||||
| 			{`[\w:-]+`, NameAttribute, nil}, | ||||
| 			{`(/?)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation), Pop(1)}, | ||||
| 		}, | ||||
| 		"script-content": { | ||||
| 			{`(<)(\s*)(/)(\s*)(script)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), Pop(1)}, | ||||
| 			{`.+?(?=<\s*/\s*script\s*>)`, Using(Javascript), nil}, | ||||
| 		}, | ||||
| 		"style-content": { | ||||
| 			{`(<)(\s*)(/)(\s*)(style)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), Pop(1)}, | ||||
| 			{`.+?(?=<\s*/\s*style\s*>)`, Using(CSS), nil}, | ||||
| 		}, | ||||
| 		"attr": { | ||||
| 			{`".*?"`, LiteralString, Pop(1)}, | ||||
| 			{`'.*?'`, LiteralString, Pop(1)}, | ||||
| 			{`[^\s>]+`, LiteralString, Pop(1)}, | ||||
| 		}, | ||||
| 	}, | ||||
| )) | ||||
							
								
								
									
										128
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/http.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/http.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,128 @@ | ||||
| package h | ||||
|  | ||||
| import ( | ||||
| 	"strings" | ||||
|  | ||||
| 	. "github.com/alecthomas/chroma" // nolint | ||||
| 	"github.com/alecthomas/chroma/lexers/internal" | ||||
| ) | ||||
|  | ||||
| // HTTP lexer. | ||||
| var HTTP = internal.Register(httpBodyContentTypeLexer(MustNewLexer( | ||||
| 	&Config{ | ||||
| 		Name:         "HTTP", | ||||
| 		Aliases:      []string{"http"}, | ||||
| 		Filenames:    []string{}, | ||||
| 		MimeTypes:    []string{}, | ||||
| 		NotMultiline: true, | ||||
| 		DotAll:       true, | ||||
| 	}, | ||||
| 	Rules{ | ||||
| 		"root": { | ||||
| 			{`(GET|POST|PUT|DELETE|HEAD|OPTIONS|TRACE|PATCH|CONNECT)( +)([^ ]+)( +)(HTTP)(/)(1\.[01])(\r?\n|\Z)`, ByGroups(NameFunction, Text, NameNamespace, Text, KeywordReserved, Operator, LiteralNumber, Text), Push("headers")}, | ||||
| 			{`(HTTP)(/)(1\.[01])( +)(\d{3})( +)([^\r\n]+)(\r?\n|\Z)`, ByGroups(KeywordReserved, Operator, LiteralNumber, Text, LiteralNumber, Text, NameException, Text), Push("headers")}, | ||||
| 		}, | ||||
| 		"headers": { | ||||
| 			{`([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|\Z)`, EmitterFunc(httpHeaderBlock), nil}, | ||||
| 			{`([\t ]+)([^\r\n]+)(\r?\n|\Z)`, EmitterFunc(httpContinuousHeaderBlock), nil}, | ||||
| 			{`\r?\n`, Text, Push("content")}, | ||||
| 		}, | ||||
| 		"content": { | ||||
| 			{`.+`, EmitterFunc(httpContentBlock), nil}, | ||||
| 		}, | ||||
| 	}, | ||||
| ))) | ||||
|  | ||||
| func httpContentBlock(groups []string, lexer Lexer) Iterator { | ||||
| 	tokens := []Token{ | ||||
| 		{Generic, groups[0]}, | ||||
| 	} | ||||
| 	return Literator(tokens...) | ||||
| } | ||||
|  | ||||
| func httpHeaderBlock(groups []string, lexer Lexer) Iterator { | ||||
| 	tokens := []Token{ | ||||
| 		{Name, groups[1]}, | ||||
| 		{Text, groups[2]}, | ||||
| 		{Operator, groups[3]}, | ||||
| 		{Text, groups[4]}, | ||||
| 		{Literal, groups[5]}, | ||||
| 		{Text, groups[6]}, | ||||
| 	} | ||||
| 	return Literator(tokens...) | ||||
| } | ||||
|  | ||||
| func httpContinuousHeaderBlock(groups []string, lexer Lexer) Iterator { | ||||
| 	tokens := []Token{ | ||||
| 		{Text, groups[1]}, | ||||
| 		{Literal, groups[2]}, | ||||
| 		{Text, groups[3]}, | ||||
| 	} | ||||
| 	return Literator(tokens...) | ||||
| } | ||||
|  | ||||
| func httpBodyContentTypeLexer(lexer Lexer) Lexer { return &httpBodyContentTyper{lexer} } | ||||
|  | ||||
| type httpBodyContentTyper struct{ Lexer } | ||||
|  | ||||
| func (d *httpBodyContentTyper) Tokenise(options *TokeniseOptions, text string) (Iterator, error) { // nolint: gocognit | ||||
| 	var contentType string | ||||
| 	var isContentType bool | ||||
| 	var subIterator Iterator | ||||
|  | ||||
| 	it, err := d.Lexer.Tokenise(options, text) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	return func() Token { | ||||
| 		token := it() | ||||
|  | ||||
| 		if token == EOF { | ||||
| 			if subIterator != nil { | ||||
| 				return subIterator() | ||||
| 			} | ||||
| 			return EOF | ||||
| 		} | ||||
|  | ||||
| 		switch { | ||||
| 		case token.Type == Name && strings.ToLower(token.Value) == "content-type": | ||||
| 			{ | ||||
| 				isContentType = true | ||||
| 			} | ||||
| 		case token.Type == Literal && isContentType: | ||||
| 			{ | ||||
| 				isContentType = false | ||||
| 				contentType = strings.TrimSpace(token.Value) | ||||
| 				pos := strings.Index(contentType, ";") | ||||
| 				if pos > 0 { | ||||
| 					contentType = strings.TrimSpace(contentType[:pos]) | ||||
| 				} | ||||
| 			} | ||||
| 		case token.Type == Generic && contentType != "": | ||||
| 			{ | ||||
| 				lexer := internal.MatchMimeType(contentType) | ||||
|  | ||||
| 				// application/calendar+xml can be treated as application/xml | ||||
| 				// if there's not a better match. | ||||
| 				if lexer == nil && strings.Contains(contentType, "+") { | ||||
| 					slashPos := strings.Index(contentType, "/") | ||||
| 					plusPos := strings.LastIndex(contentType, "+") | ||||
| 					contentType = contentType[:slashPos+1] + contentType[plusPos+1:] | ||||
| 					lexer = internal.MatchMimeType(contentType) | ||||
| 				} | ||||
|  | ||||
| 				if lexer == nil { | ||||
| 					token.Type = Text | ||||
| 				} else { | ||||
| 					subIterator, err = lexer.Tokenise(nil, token.Value) | ||||
| 					if err != nil { | ||||
| 						panic(err) | ||||
| 					} | ||||
| 					return EOF | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		return token | ||||
| 	}, nil | ||||
| } | ||||
							
								
								
									
										51
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/hy.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								vendor/github.com/alecthomas/chroma/lexers/h/hy.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| package h | ||||
|  | ||||
| import ( | ||||
| 	. "github.com/alecthomas/chroma" // nolint | ||||
| 	"github.com/alecthomas/chroma/lexers/internal" | ||||
| ) | ||||
|  | ||||
| // Hy lexer. | ||||
| var Hy = internal.Register(MustNewLexer( | ||||
| 	&Config{ | ||||
| 		Name:      "Hy", | ||||
| 		Aliases:   []string{"hylang"}, | ||||
| 		Filenames: []string{"*.hy"}, | ||||
| 		MimeTypes: []string{"text/x-hy", "application/x-hy"}, | ||||
| 	}, | ||||
| 	Rules{ | ||||
| 		"root": { | ||||
| 			{`;.*$`, CommentSingle, nil}, | ||||
| 			{`[,\s]+`, Text, nil}, | ||||
| 			{`-?\d+\.\d+`, LiteralNumberFloat, nil}, | ||||
| 			{`-?\d+`, LiteralNumberInteger, nil}, | ||||
| 			{`0[0-7]+j?`, LiteralNumberOct, nil}, | ||||
| 			{`0[xX][a-fA-F0-9]+`, LiteralNumberHex, nil}, | ||||
| 			{`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, | ||||
| 			{`'(?!#)[\w!$%*+<=>?/.#-]+`, LiteralStringSymbol, nil}, | ||||
| 			{`\\(.|[a-z]+)`, LiteralStringChar, nil}, | ||||
| 			{`^(\s*)([rRuU]{,2}"""(?:.|\n)*?""")`, ByGroups(Text, LiteralStringDoc), nil}, | ||||
| 			{`^(\s*)([rRuU]{,2}'''(?:.|\n)*?''')`, ByGroups(Text, LiteralStringDoc), nil}, | ||||
| 			{`::?(?!#)[\w!$%*+<=>?/.#-]+`, LiteralStringSymbol, nil}, | ||||
| 			{"~@|[`\\'#^~&@]", Operator, nil}, | ||||
| 			Include("py-keywords"), | ||||
| 			Include("py-builtins"), | ||||
| 			{Words(``, ` `, `cond`, `for`, `->`, `->>`, `car`, `cdr`, `first`, `rest`, `let`, `when`, `unless`, `import`, `do`, `progn`, `get`, `slice`, `assoc`, `with-decorator`, `,`, `list_comp`, `kwapply`, `~`, `is`, `in`, `is-not`, `not-in`, `quasiquote`, `unquote`, `unquote-splice`, `quote`, `|`, `<<=`, `>>=`, `foreach`, `while`, `eval-and-compile`, `eval-when-compile`), Keyword, nil}, | ||||
| 			{Words(``, ` `, `def`, `defn`, `defun`, `defmacro`, `defclass`, `lambda`, `fn`, `setv`), KeywordDeclaration, nil}, | ||||
| 			{Words(``, ` `, `cycle`, `dec`, `distinct`, `drop`, `even?`, `filter`, `inc`, `instance?`, `iterable?`, `iterate`, `iterator?`, `neg?`, `none?`, `nth`, `numeric?`, `odd?`, `pos?`, `remove`, `repeat`, `repeatedly`, `take`, `take_nth`, `take_while`, `zero?`), NameBuiltin, nil}, | ||||
| 			{`(?<=\()(?!#)[\w!$%*+<=>?/.#-]+`, NameFunction, nil}, | ||||
| 			{`(?!#)[\w!$%*+<=>?/.#-]+`, NameVariable, nil}, | ||||
| 			{`(\[|\])`, Punctuation, nil}, | ||||
| 			{`(\{|\})`, Punctuation, nil}, | ||||
| 			{`(\(|\))`, Punctuation, nil}, | ||||
| 		}, | ||||
| 		"py-keywords": { | ||||
| 			{Words(``, `\b`, `assert`, `break`, `continue`, `del`, `elif`, `else`, `except`, `exec`, `finally`, `for`, `global`, `if`, `lambda`, `pass`, `print`, `raise`, `return`, `try`, `while`, `yield`, `yield from`, `as`, `with`), Keyword, nil}, | ||||
| 		}, | ||||
| 		"py-builtins": { | ||||
| 			{Words(`(?<!\.)`, `\b`, `__import__`, `abs`, `all`, `any`, `apply`, `basestring`, `bin`, `bool`, `buffer`, `bytearray`, `bytes`, `callable`, `chr`, `classmethod`, `cmp`, `coerce`, `compile`, `complex`, `delattr`, `dict`, `dir`, `divmod`, `enumerate`, `eval`, `execfile`, `exit`, `file`, `filter`, `float`, `frozenset`, `getattr`, `globals`, `hasattr`, `hash`, `hex`, `id`, `input`, `int`, `intern`, `isinstance`, `issubclass`, `iter`, `len`, `list`, `locals`, `long`, `map`, `max`, `min`, `next`, `object`, `oct`, `open`, `ord`, `pow`, `property`, `range`, `raw_input`, `reduce`, `reload`, `repr`, `reversed`, `round`, `set`, `setattr`, `slice`, `sorted`, `staticmethod`, `str`, `sum`, `super`, `tuple`, `type`, `unichr`, `unicode`, `vars`, `xrange`, `zip`), NameBuiltin, nil}, | ||||
| 			{`(?<!\.)(self|None|Ellipsis|NotImplemented|False|True|cls)\b`, NameBuiltinPseudo, nil}, | ||||
| 			{Words(`(?<!\.)`, `\b`, `ArithmeticError`, `AssertionError`, `AttributeError`, `BaseException`, `DeprecationWarning`, `EOFError`, `EnvironmentError`, `Exception`, `FloatingPointError`, `FutureWarning`, `GeneratorExit`, `IOError`, `ImportError`, `ImportWarning`, `IndentationError`, `IndexError`, `KeyError`, `KeyboardInterrupt`, `LookupError`, `MemoryError`, `NameError`, `NotImplemented`, `NotImplementedError`, `OSError`, `OverflowError`, `OverflowWarning`, `PendingDeprecationWarning`, `ReferenceError`, `RuntimeError`, `RuntimeWarning`, `StandardError`, `StopIteration`, `SyntaxError`, `SyntaxWarning`, `SystemError`, `SystemExit`, `TabError`, `TypeError`, `UnboundLocalError`, `UnicodeDecodeError`, `UnicodeEncodeError`, `UnicodeError`, `UnicodeTranslateError`, `UnicodeWarning`, `UserWarning`, `ValueError`, `VMSError`, `Warning`, `WindowsError`, `ZeroDivisionError`), NameException, nil}, | ||||
| 		}, | ||||
| 	}, | ||||
| )) | ||||
		Reference in New Issue
	
	Block a user