示例#1
0
        /// <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);
        }
示例#2
0
        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"));
        }