/// <summary> /// Gets a color definition. /// </summary> /// <param name="name">The name of the color definition.</param> /// <returns>A color definition. A default color definition if the definition was not found.</returns> public ColorDefinition GetColorDefinition(string name) { ColorDefinition colorDef = ColorDefinitions.FirstOrDefault(x => x.Name == name); if (colorDef == null) { if (!CurrentApplication.IsRelease) { //throw new InvalidOperationException("Saknar färgdefinition i temat."); } if (ForegroundColor != null) { colorDef = new ColorDefinition(name, ForegroundColor); } else { colorDef = new ColorDefinition(name, "000000"); } } return(colorDef); }
public static string GetDefinition(string extension, Theme theme = null) { if (theme == null && LoadedTheme != null) { theme = LoadedTheme; } ColorDefinition stringLiterals = theme.GetColorDefinition("StringLiterals"); ColorDefinition comments = theme.GetColorDefinition("Comments"); ColorDefinition classKeywords = theme.GetColorDefinition("ClassKeywords"); ColorDefinition brackets = theme.GetColorDefinition("Brackets"); ColorDefinition types = theme.GetColorDefinition("Types"); ColorDefinition privateVariables = theme.GetColorDefinition("PrivateVariables"); ColorDefinition classMemberNames = theme.GetColorDefinition("ClassMemberNames"); ColorDefinition keywords = theme.GetColorDefinition("Keywords"); ColorDefinition operators = theme.GetColorDefinition("Operators"); ColorDefinition globalFunctions = theme.GetColorDefinition("GlobalFunctions"); ColorDefinition preprocessorKeywords = theme.GetColorDefinition("PreprocessorKeywords"); ColorDefinition numberLiterals = theme.GetColorDefinition("NumberLiterals"); ColorDefinition scopeAndBreakCommands = theme.GetColorDefinition("ScopeAndBreakCommands"); ColorDefinition constantLiterals = theme.GetColorDefinition("ConstantLiterals"); ColorDefinition propertyGetSet = theme.GetColorDefinition("PropertyGetSet"); string xshdContent = GetXshdContent(extension); return(xshdContent .Replace("%CommentsForeColor%", comments.ForeColor) .Replace("%CommentsBold%", comments.Bold ? "bold" : "normal") .Replace("%CommentsItalic%", comments.Italic ? "italic" : "normal") .Replace("%StringsForeColor%", stringLiterals.ForeColor) .Replace("%StringsBold%", stringLiterals.Bold ? "bold" : "normal") .Replace("%StringsItalic%", stringLiterals.Italic ? "italic" : "normal") .Replace("%ClassKeywordForeColor%", classKeywords.ForeColor) .Replace("%ClassKeywordBold%", classKeywords.Bold ? "bold" : "normal") .Replace("%ClassKeywordItalic%", classKeywords.Italic ? "italic" : "normal") .Replace("%BracketsForeColor%", brackets.ForeColor) .Replace("%BracketsBold%", brackets.Bold ? "bold" : "normal") .Replace("%BracketsItalic%", brackets.Italic ? "italic" : "normal") .Replace("%TypesForeColor%", types.ForeColor) .Replace("%TypesBold%", types.Bold ? "bold" : "normal") .Replace("%TypesItalic%", types.Italic ? "italic" : "normal") .Replace("%PrivateVariableForeColor%", privateVariables.ForeColor) .Replace("%PrivateVariableBold%", privateVariables.Bold ? "bold" : "normal") .Replace("%PrivateVariableItalic%", privateVariables.Italic ? "italic" : "normal") .Replace("%ClassMemberNamesForeColor%", classMemberNames.ForeColor) .Replace("%ClassMemberNamesBold%", classMemberNames.Bold ? "bold" : "normal") .Replace("%ClassMemberNamesItalic%", classMemberNames.Italic ? "italic" : "normal") .Replace("%KeywordsForeColor%", keywords.ForeColor) .Replace("%KeywordsBold%", keywords.Bold ? "bold" : "normal") .Replace("%KeywordsItalic%", keywords.Italic ? "italic" : "normal") .Replace("%OperatorsForeColor%", operators.ForeColor) .Replace("%OperatorsBold%", operators.Bold ? "bold" : "normal") .Replace("%OperatorsItalic%", operators.Italic ? "italic" : "normal") .Replace("%GlobalFunctionHeaderForeColor%", globalFunctions.ForeColor) .Replace("%GlobalFunctionHeaderBold%", globalFunctions.Bold ? "bold" : "normal") .Replace("%GlobalFunctionHeaderItalic%", globalFunctions.Italic ? "italic" : "normal") .Replace("%PreprocessorForeColor%", preprocessorKeywords.ForeColor) .Replace("%PreprocessorBold%", preprocessorKeywords.Bold ? "bold" : "normal") .Replace("%PreprocessorItalic%", preprocessorKeywords.Italic ? "italic" : "normal") .Replace("%NumberLiteralsForeColor%", numberLiterals.ForeColor) .Replace("%NumberLiteralsBold%", numberLiterals.Bold ? "bold" : "normal") .Replace("%NumberLiteralsItalic%", numberLiterals.Italic ? "italic" : "normal") .Replace("%ScopeAndBreakCommandsForeColor%", scopeAndBreakCommands.ForeColor) .Replace("%ScopeAndBreakCommandsBold%", scopeAndBreakCommands.Bold ? "bold" : "normal") .Replace("%ScopeAndBreakCommandsItalic%", scopeAndBreakCommands.Italic ? "italic" : "normal") .Replace("%ValueLiteralsForeColor%", constantLiterals.ForeColor) .Replace("%ValueLiteralsBold%", constantLiterals.Bold ? "bold" : "normal") .Replace("%ValueLiteralsItalic%", constantLiterals.Italic ? "italic" : "normal") .Replace("%PropertyGetSetForeColor%", propertyGetSet.ForeColor) .Replace("%PropertyGetSetBold%", propertyGetSet.Bold ? "bold" : "normal") .Replace("%PropertyGetSetItalic%", propertyGetSet.Italic ? "italic" : "normal")); }