/// <summary> /// A helper method to be used with HTML including scripts. /// </summary> /// <param name="lexerType">Type of the lexer to embed into the HTML lexer.</param> /// <param name="scintilla">An instance to a scintilla to which to append the script lexer.</param> /// <param name="lexerColors">A <see cref="LexerColors"/> class instance for the lexer coloring.</param> public static void SetScriptedHtml(LexerType lexerType, Scintilla scintilla, LexerColors.LexerColors lexerColors) { if (lexerType == LexerType.PHP || lexerType == LexerType.HTML) { SetHtmlStyles(scintilla, lexerColors); if (lexerType == LexerType.PHP) { var keyWords = ScintillaKeyWords.KeyWordList.FirstOrDefault(f => f.LexerType == LexerType.HTML); if (keyWords != null) { scintilla.SetKeywords(1, keyWords.KeyWords); } } else if (lexerType == LexerType.HTML) { var keyWords = ScintillaKeyWords.KeyWordList.FirstOrDefault(f => f.LexerType == LexerType.PHP); if (keyWords != null) { scintilla.SetKeywords(1, keyWords.KeyWords); } } LexerFoldProperties.SetScintillaProperties(scintilla, LexerFoldProperties.HyperTextFolding); SetHtmlStyles(scintilla, lexerColors); } }
/// <summary> /// Creates the lexer for a given Scintilla class instance for the Structured Query Language (SQL). /// </summary> /// <param name="scintilla">A Scintilla class instance to set the lexer style for.</param> /// <param name="lexerColors">A <see cref="LexerColors"/> class instance for the lexer coloring.</param> /// <returns>True if the operation was successful; otherwise false.</returns> public static bool CreateSqlLexer(Scintilla scintilla, LexerColors.LexerColors lexerColors) { ClearStyle(scintilla); // KEYWORD, fontStyle = 1 scintilla.Styles[Style.Sql.Word].Bold = true; scintilla.Styles[Style.Sql.Word].ForeColor = lexerColors[LexerType.SQL, "WordFore"]; scintilla.Styles[Style.Sql.Word].BackColor = lexerColors[LexerType.SQL, "WordBack"]; // NUMBER, fontStyle = 0 scintilla.Styles[Style.Sql.Number].ForeColor = lexerColors[LexerType.SQL, "NumberFore"]; scintilla.Styles[Style.Sql.Number].BackColor = lexerColors[LexerType.SQL, "NumberBack"]; // STRING, fontStyle = 0 scintilla.Styles[Style.Sql.String].ForeColor = lexerColors[LexerType.SQL, "StringFore"]; scintilla.Styles[Style.Sql.String].BackColor = lexerColors[LexerType.SQL, "StringBack"]; // STRING2, fontStyle = 0 scintilla.Styles[Style.Sql.Character].ForeColor = lexerColors[LexerType.SQL, "CharacterFore"]; scintilla.Styles[Style.Sql.Character].BackColor = lexerColors[LexerType.SQL, "CharacterBack"]; // OPERATOR, fontStyle = 1 scintilla.Styles[Style.Sql.Operator].Bold = true; scintilla.Styles[Style.Sql.Operator].ForeColor = lexerColors[LexerType.SQL, "OperatorFore"]; scintilla.Styles[Style.Sql.Operator].BackColor = lexerColors[LexerType.SQL, "OperatorBack"]; // COMMENT, fontStyle = 0 scintilla.Styles[Style.Sql.Comment].ForeColor = lexerColors[LexerType.SQL, "CommentFore"]; scintilla.Styles[Style.Sql.Comment].BackColor = lexerColors[LexerType.SQL, "CommentBack"]; // COMMENT LINE, fontStyle = 0 scintilla.Styles[Style.Sql.CommentLine].ForeColor = lexerColors[LexerType.SQL, "CommentLineFore"]; scintilla.Styles[Style.Sql.CommentLine].BackColor = lexerColors[LexerType.SQL, "CommentLineBack"]; scintilla.Lexer = Lexer.Sql; ScintillaKeyWords.SetKeywords(scintilla, LexerType.SQL); LexerFoldProperties.SetScintillaProperties(scintilla, LexerFoldProperties.SqlFolding); AddFolding(scintilla); return(true); }
/// <summary> /// Creates the lexer for a given Scintilla class instance for the XML (The eXtensible Markup Language). /// </summary> /// <param name="scintilla">A Scintilla class instance to set the lexer style for.</param> /// <param name="lexerColors">A <see cref="LexerColors"/> class instance for the lexer coloring.</param> /// <returns>True if the operation was successful; otherwise false.</returns> public static bool CreateXmlLexer(Scintilla scintilla, LexerColors.LexerColors lexerColors) { ClearStyle(scintilla); // XMLSTART, fontStyle = 0 scintilla.Styles[Style.Xml.XmlStart].ForeColor = lexerColors[LexerType.Xml, "XmlStartFore"]; scintilla.Styles[Style.Xml.XmlStart].BackColor = lexerColors[LexerType.Xml, "XmlStartBack"]; // XMLEND, fontStyle = 0 scintilla.Styles[Style.Xml.XmlEnd].ForeColor = lexerColors[LexerType.Xml, "XmlEndFore"]; scintilla.Styles[Style.Xml.XmlEnd].BackColor = lexerColors[LexerType.Xml, "XmlEndBack"]; // DEFAULT, fontStyle = 1 scintilla.Styles[Style.Xml.Default].Bold = true; scintilla.Styles[Style.Xml.Default].ForeColor = lexerColors[LexerType.Xml, "DefaultFore"]; scintilla.Styles[Style.Xml.Default].BackColor = lexerColors[LexerType.Xml, "DefaultBack"]; // COMMENT, fontStyle = 0 scintilla.Styles[Style.Xml.Comment].ForeColor = lexerColors[LexerType.Xml, "CommentFore"]; scintilla.Styles[Style.Xml.Comment].BackColor = lexerColors[LexerType.Xml, "CommentBack"]; // NUMBER, fontStyle = 0 scintilla.Styles[Style.Xml.Number].ForeColor = lexerColors[LexerType.Xml, "NumberFore"]; scintilla.Styles[Style.Xml.Number].BackColor = lexerColors[LexerType.Xml, "NumberBack"]; // DOUBLESTRING, fontStyle = 1 scintilla.Styles[Style.Xml.DoubleString].Bold = true; scintilla.Styles[Style.Xml.DoubleString].ForeColor = lexerColors[LexerType.Xml, "DoubleStringFore"]; scintilla.Styles[Style.Xml.DoubleString].BackColor = lexerColors[LexerType.Xml, "DoubleStringBack"]; // SINGLESTRING, fontStyle = 1 scintilla.Styles[Style.Xml.SingleString].Bold = true; scintilla.Styles[Style.Xml.SingleString].ForeColor = lexerColors[LexerType.Xml, "SingleStringFore"]; scintilla.Styles[Style.Xml.SingleString].BackColor = lexerColors[LexerType.Xml, "SingleStringBack"]; // TAG, fontStyle = 0 scintilla.Styles[Style.Xml.Tag].ForeColor = lexerColors[LexerType.Xml, "TagFore"]; scintilla.Styles[Style.Xml.Tag].BackColor = lexerColors[LexerType.Xml, "TagBack"]; // TAGEND, fontStyle = 0 scintilla.Styles[Style.Xml.TagEnd].ForeColor = lexerColors[LexerType.Xml, "TagEndFore"]; scintilla.Styles[Style.Xml.TagEnd].BackColor = lexerColors[LexerType.Xml, "TagEndBack"]; // TAGUNKNOWN, fontStyle = 0 scintilla.Styles[Style.Xml.TagUnknown].ForeColor = lexerColors[LexerType.Xml, "TagUnknownFore"]; scintilla.Styles[Style.Xml.TagUnknown].BackColor = lexerColors[LexerType.Xml, "TagUnknownBack"]; // ATTRIBUTE, fontStyle = 0 scintilla.Styles[Style.Xml.Attribute].ForeColor = lexerColors[LexerType.Xml, "AttributeFore"]; scintilla.Styles[Style.Xml.Attribute].BackColor = lexerColors[LexerType.Xml, "AttributeBack"]; // ATTRIBUTEUNKNOWN, fontStyle = 0 scintilla.Styles[Style.Xml.AttributeUnknown].ForeColor = lexerColors[LexerType.Xml, "AttributeUnknownFore"]; scintilla.Styles[Style.Xml.AttributeUnknown].BackColor = lexerColors[LexerType.Xml, "AttributeUnknownBack"]; // SGMLDEFAULT, fontStyle = 0 scintilla.Styles[21].ForeColor = lexerColors[LexerType.Xml, "SgmlDefaultFore"]; scintilla.Styles[21].BackColor = lexerColors[LexerType.Xml, "SgmlDefaultBack"]; // CDATA, fontStyle = 0 scintilla.Styles[Style.Xml.CData].ForeColor = lexerColors[LexerType.Xml, "CDataFore"]; scintilla.Styles[Style.Xml.CData].BackColor = lexerColors[LexerType.Xml, "CDataBack"]; // ENTITY, fontStyle = 2 scintilla.Styles[Style.Xml.Entity].Italic = true; scintilla.Styles[Style.Xml.Entity].ForeColor = lexerColors[LexerType.Xml, "EntityFore"]; scintilla.Styles[Style.Xml.Entity].BackColor = lexerColors[LexerType.Xml, "EntityBack"]; scintilla.Lexer = Lexer.Xml; // folding for a XML lexer.. LexerFoldProperties.SetScintillaProperties(scintilla, LexerFoldProperties.XmlFolding); AddFolding(scintilla); return(true); }