---@diagnostic disable: undefined-global
local lush = require("lush")
local base = require("dmg_base")
local spec = lush(function()
	return {
		helpHeadline({ base.Title }),
		helpCommand({ base.Statement }),
		helpExample({ base.Statement }),
		helpHyperTextJump({ base.Underlined }),
		helpSectionDelim({ base.Delimiter }),
		helpOption({ base.Keyword }),
		helpHeader({ base.Label }),

		luaParenError({ base.Error }),
		luaError({ base.Error }),
		luaString2({ base.String }),
		luaString({ base.String }),
		luaConstant({ base.Constant }),
		luaNumber({ base.Number }),
		luaSpecialValue({ base.Function }),
		luaFuncName({ base.Function }),
		luaFuncCall({ base.Function }),
		luaCondElse({ base.Conditional }),
		luaFuncArgName({ base.Identifier }),
		luaMetaMethod({ base.Function }),
		luaFuncTable({ base.Identifier }),
		luaFunc({ base.Identifier }),
		luaCond({ base.Conditional }),
		luaStringLongTag({ gui = "italic", fg = "#9e8d7f" }),
		luaComment({ base.Comment }),
		luaBrackets({ base.Delimiter }),
		luaFuncParens({ base.Delimiter }),
		luaParens({ base.Delimiter }),
		luaNoise({ base.Delimiter }),
		luaComma({ base.Delimiter }),
		luaDocTag({ base.SpecialComment }),
		luaRepeat({ base.Repeat }),
		luaFor({ base.Repeat }),
		luaLabel({ base.Label }),
		luaStatement({ base.Keyword }),
		luaFunction({ base.Keyword }),
		luaBuiltin({ base.Keyword }),
		luaLocal({ base.Keyword }),

		texMathRegion({ base.Number }),
		texMathSub({ base.Number }),
		texMathSuper({ base.Number }),
		texMathRegionX({ base.Number }),
		texMathRegionXX({ base.Number }),

		xdefaultsValue({ base.String }),
		xdefaultsPunct({ base.Delimiter }),
		xdefaultsLabel({ base.Label }),

		cppSTLnamespace({ base.String }),
		cppSTLexception({ base.Exception }),

		vimSet({ base.String }),
		vimFgBgAttrib({ base.Constant }),
		vimIsCommand({ base.Identifier }),
		vimFunction({ base.Function }),
		vimHiCterm({ base.Label }),
		vimCmdSep({ base.Delimiter }),
		vimSetSep({ base.Delimiter }),
		vimOption({ base.Keyword }),

		jsonString({ base.String }),
		jsonQuote({ base.Delimiter }),
		jsonStringSQError({ base.Exception }),
		jsonNull({ base.Constant }),

		razorcsTypeNullable({ base.Special }),
		razorDelimiter({ base.Delimiter }),
		razorhtmlValueDelimiter({ base.Delimiter }),
		razorImplicitExpression({ base.PreProc }),
		razorUsing({ base.Include }),
		razorLine({ base.Constant }),
		razorCode({ base.PreProc }),

		cConstant({ base.Constant }),

		xxdAscii({ base.Character }),
		xxdAddress({ base.Label }),
		xxdSep({ base.Delimiter }),

		dotKeyChar({ base.Character }),

		shQuote({ base.Delimiter }),
		shParen({ base.Delimiter }),
		shFunctionKey({ base.Function }),
		shSet({ base.Statement }),
		shLoop({ base.Repeat }),

		goBlock({ base.Delimiter }),
		goFormatSpecifier({ base.Character }),
		goBoolean({ base.Boolean }),
		goPredefinedIdentifiers({ base.Constant }),
		goFunction({ base.Function }),
		goField({ base.Identifier }),
		goVarAssign({ base.Identifier }),

		sqlKeyword({ base.Keyword }),
		sqlParen({ base.Delimiter }),
		sqlSpecial({ base.Constant }),
		sqlParenFunc({ base.Function }),
		sqlStatement({ base.Statement }),

		jsFuncBlock({ base.Function }),
		jsReturn({ base.Keyword }),
		jsVariableDef({ base.Identifier }),

		solContractName({ base.Function }),

		rustIdentifier({ base.Identifier }),
		makeCommands({ base.Statement }),
		dartLibrary({ base.Statement }),

		dosiniLabel({ base.Label }),
		dosiniHeader({ base.Title }),

		plantumlArrowLR({ base.Statement }),
		plantumlMindmap({ base.Label }),
		plantumlMindmap2({ base.Label }),

		yamlKey({ base.Label }),

		scalaNameDefinition({ base.Identifier }),
		scalaKeyword({ base.Keyword }),

		rubyDefine({ base.Define }),
		rubyInterpolationDelimiter({ base.Delimiter }),

		i3ConfigExec({ base.Statement }),
		i3ConfigAction({ base.Function }),
		i3ConfigString({ base.String }),
		i3ConfigFontContent({ base.String }),
		i3ConfigInitialize({ base.String }),
		i3ConfigVariableAndModifier({ base.Character }),
		i3ConfigNumber({ base.Number }),
		i3ConfigBlockKeyword({ base.Keyword }),
		i3ConfigVariable({ base.Define }),
		i3ConfigGapStyleKeyword({ base.Keyword }),
		i3ConfigInitializeKeyword({ base.Keyword }),
		i3ConfigInterprocessKeyword({ base.Keyword }),
		i3ConfigBindKeyword({ base.Keyword }),
		i3ConfigCommandKeyword({ base.Keyword }),
		i3ConfigFloating({ base.Keyword }),
		i3ConfigFocusOnActivationKeyword({ base.Keyword }),
		i3ConfigFontKeyword({ base.Keyword }),
		i3ConfigLayoutKeyword({ base.Keyword }),
		i3ConfigMouseWarpingKeyword({ base.Keyword }),
		i3ConfigNoFocusKeyword({ base.Keyword }),
		i3ConfigOrientationKeyword({ base.Keyword }),
		i3ConfigPopupOnFullscreenKeyword({ base.Keyword }),
		i3ConfigFontSeparator({ base.Delimiter }),
		i3ConfigWorkspaceKeyword({ base.Keyword }),
		i3ConfigTitleAlignKeyword({ base.Keyword }),
		i3ConfigSmartGapKeyword({ base.Keyword }),
		i3ConfigSmartBorderKeyword({ base.Keyword }),
		i3ConfigResourceKeyword({ base.Keyword }),
		i3ConfigAssignKeyword({ base.Keyword }),
		i3ConfigForceXineramaKeyword({ base.Keyword }),
		i3ConfigFocusWrappingKeyword({ base.Keyword }),
		i3ConfigFocusFollowsMouseKeyword({ base.Keyword }),
		i3ConfigExecKeyword({ base.Keyword }),
		i3ConfigDrawingMarksKeyword({ base.Keyword }),
		i3ConfigDelayUrgencyKeyword({ base.Keyword }),
		i3ConfigBorderStyleKeyword({ base.Keyword }),
		i3ConfigClientColorKeyword({ base.Keyword }),
		i3ConfigEdgeKeyword({ base.Keyword }),
		i3ConfigBorderStyle({ base.Keyword }),

		csModifier({ base.Keyword }),
		csContextualStatement({ base.Conditional }),
		csUnspecifiedStatement({ base.Statement }),
		csRepeat({ base.Repeat }),
		csInterpolation({ base.Include }),
		csPreCondit({ base.PreProc }),
		csQuote({ base.Delimiter }),
		csParens({ base.Delimiter }),
		csEndColon({ base.Delimiter }),
		csBraces({ base.Delimiter }),
		csXmlTagName({ base.Define }),
		csXmlTag({ base.Define }),
		csStorage({ base.StorageClass }),

		gitcommitOverFlow({ base.Error }),
		gitconfigAssignment({ base.String }),
		gitconfigVariable({ base.Label }),
		gitcommitSelectedFile({ base.Directory }),
		gitcommitSummary({ base.Title }),
		gitrebaseSummary({ base.Title }),
		gitrebaseBreak({ base.Keyword }),
		gitrebaseDrop({ base.Exception }),
		gitrebasePick({ base.Include }),
		gitrebaseExec({ base.PreProc }),
		gitrebaseMerge({ base.PreProc }),
		gitrebaseEdit({ base.Define }),
		gitrebaseSquash({ base.Macro }),
		gitcommitHeader({ base.SpecialComment }),

		crontabHr({ base.Number }),
		crontabDow({ base.String }),
		crontabDay({ base.StorageClass }),

		cssClassName({ base.Identifier }),
		cssProp({ base.Label }),
		cssImportant({ base.Exception }),
		cssAttr({ base.Keyword }),
		cssPseudoClass({ base.Special }),
		cssBraces({ base.Delimiter }),
		cssAttrRegion({ base.Keyword }),

		scssMixinName({ gui = "italic", fg = "#574b42" }),
		scssInclude({ base.Include }),
		scssDefault({ base.Keyword }),
		scssSelectorName({ base.Identifier }),
		scssBoolean({ base.Boolean }),
		scssDefinition({ base.PreProc }),
		scssVariable({ base.Define }),
		scssSelectorChar({ base.Delimiter }),
		scssAmpersand({ base.Special }),

		tomlDate({ base.Special }),
		tomlKey({ base.Label }),
		tomlComment({ base.Comment }),

		pythonParameters({ base.Delimiter }),
		pythonDecorator({ base.PreProc }),
		pythonInclude({ base.Include }),
		pythonException({ base.Exception }),
		pythonStatement({ base.Statement }),
		pythonParam({ base.Identifier }),
		pythonError({ base.Error }),
		pythonDottedName({ base.Identifier }),
		pythonSelf({ base.Statement }),
		pythonBrackets({ base.Delimiter }),

		markdownUrl({ base.Underlined }),
		markdownLinkDelimiter({ base.Delimiter }),
		markdownHeadingDelimiter({ base.NonText }),
		markdownJekyllDelimiter({ fg = "#493f37" }),
		markdownJekyllFrontMatter({ fg = "#493f37" }),
		markdownH6({ bg = "#d1bed0", gui = "bold", fg = "#5e2b66" }),
		markdownH5({ bg = "#d1ccde", gui = "bold", fg = "#26126d" }),
		markdownH4({ bg = "#deb9b9", gui = "bold", fg = "#793454" }),
		markdownH3({ bg = "#d6c890", gui = "bold", fg = "#573e1a" }),
		markdownH2({ bg = "#d1ccde", gui = "bold", fg = "#26126d" }),
		markdownH1({ bg = "#dbc4c8", gui = "bold", fg = "#630e49" }),
		markdownStrike({ gui = "strikethrough", fg = "#493f37" }),
		mkdURL({ gui = "underline", fg = "#184e1e" }),
		mkdCode({ bg = "#ded8d3", fg = "#493f37" }),
		markdownCode({ mkdCode }),
		mkdHeading({ base.Delimiter }),
		mkdListItem({ base.Special }),
		mkdLineBreak({ base.NonText }),
		mkdRule({ gui = "underline", sp = "#9e8d7f", fg = "#574b42" }),

		htmlItalic({ gui = "italic" }),
		htmlBold({ gui = "bold", fg = "#161e29" }),
		htmlTitle({ htmlBold }),
		htmlTag({ base.Special }),
		htmlSpecialTagName({ base.Keyword }),
		htmlArg({ base.Label }),
		htmlH6({ markdownH6 }),
		htmlH5({ markdownH5 }),
		htmlH4({ markdownH4 }),
		htmlH3({ markdownH3 }),
		htmlH2({ markdownH2 }),
		htmlH1({ markdownH1 }),

		manOptionDesc({ base.Special }),
		manBold({ bg = "#ded8d3", gui = "nocombine", fg = "#493f37" }),
		manHeader({ markdownH1 }),
		manSectionHeading({ markdownH2 }),
		manSubHeading({ markdownH3 }),

		NvimInvalidSpacing({ base.ErrorMsg }),
		NvimIdentifier({ base.Identifier }),
		NvimNumber({ base.Number }),
		NvimParenthesis({ base.Delimiter }),
		NvimColon({ base.Delimiter }),
		NvimComma({ base.Delimiter }),
		NvimArrow({ base.Delimiter }),
		NvimInternalError({ bg = "red", fg = "red" }),
		NvimFigureBrace({ NvimInternalError }),
		NvimSingleQuotedUnknownEscape({ NvimInternalError }),
		NvimInvalidSingleQuotedUnknownEscape({ NvimInternalError }),
		NvimInvalid({ base.Error }),
		NvimSpacing({ base.Normal }),
		NvimString({ base.String }),
	}
end)
return spec
