SyntaxHighlightToken CreateToken(int start, int end, Color foreColor)
        {
            SyntaxHighlightProperties properties = new SyntaxHighlightProperties();

            properties.ForeColor = foreColor;
            return(new SyntaxHighlightToken(start, end - start, properties));
        }
예제 #2
0
        void HighlightSyntax(TokenCollection tokens)
        {
            commentProperties           = new SyntaxHighlightProperties();
            commentProperties.ForeColor = syntaxColors.CommentColor;

            keywordProperties           = new SyntaxHighlightProperties();
            keywordProperties.ForeColor = syntaxColors.KeywordColor;

            stringProperties           = new SyntaxHighlightProperties();
            stringProperties.ForeColor = syntaxColors.StringColor;

            xmlCommentProperties           = new SyntaxHighlightProperties();
            xmlCommentProperties.ForeColor = syntaxColors.XmlCommentColor;

            textProperties           = new SyntaxHighlightProperties();
            textProperties.ForeColor = syntaxColors.TextColor;

            if (tokens == null || tokens.Count == 0)
            {
                return;
            }

            Document document = syntaxEditor.Document;
            //CharacterProperties cp = document.BeginUpdateCharacters(0, 1);
            List <SyntaxHighlightToken> syntaxTokens = new List <SyntaxHighlightToken>(tokens.Count);

            foreach (Token token in tokens)
            {
                HighlightCategorizedToken((CategorizedToken)token, syntaxTokens);
            }
            document.ApplySyntaxHighlight(syntaxTokens);
            //document.EndUpdateCharacters(cp);
        }
        void AddTokensMapping(TokenCategory category, Color foreColor)
        {
            SyntaxHighlightProperties tokenProperties = new SyntaxHighlightProperties();

            tokenProperties.ForeColor = foreColor;
            TokensMapping.Add(category, tokenProperties);
        }
예제 #4
0
        void Add(TokenCategory category, Color foreColor)
        {
            SyntaxHighlightProperties item = new SyntaxHighlightProperties();

            item.ForeColor = foreColor;
            properties.Add(category, item);
        }
        void HighlightSyntax(TokenCollection tokens)
        {
            commentProperties           = new SyntaxHighlightProperties();
            commentProperties.ForeColor = syntaxColors.CommentColor;

            keywordProperties           = new SyntaxHighlightProperties();
            keywordProperties.ForeColor = syntaxColors.KeywordColor;

            stringProperties           = new SyntaxHighlightProperties();
            stringProperties.ForeColor = syntaxColors.StringColor;

            xmlCommentProperties           = new SyntaxHighlightProperties();
            xmlCommentProperties.ForeColor = syntaxColors.XmlCommentColor;

            textProperties           = new SyntaxHighlightProperties();
            textProperties.ForeColor = syntaxColors.TextColor;

            Document document = syntaxEditor.Document;
            List <SyntaxHighlightToken> syntaxTokens = new List <SyntaxHighlightToken>(tokens.Count);

            foreach (Token token in tokens)
            {
                var categorizedToken = token as CategorizedToken;
                if (categorizedToken != null)
                {
                    HighlightCategorizedToken(categorizedToken, syntaxTokens);
                }
            }
            if (syntaxTokens.Count > 0)
            {
                document.ApplySyntaxHighlight(syntaxTokens);
            }
        }
예제 #6
0
        void Add(TokenCategory category, Color foreColor)
        {
            var item = new SyntaxHighlightProperties {
                ForeColor = foreColor
            };

            _properties.Add(category, item);
        }
예제 #7
0
        void HighlightCategorizedToken(CategorizedToken token, List <SyntaxHighlightToken> syntaxTokens)
        {
            SyntaxHighlightProperties highlightProperties = _syntaxHighlightInfo.CalculateTokenCategoryHighlight(token.Category);
            SyntaxHighlightToken      syntaxToken         = SetTokenColor(token, highlightProperties);

            if (syntaxToken != null)
            {
                syntaxTokens.Add(syntaxToken);
            }
        }
예제 #8
0
        void HighlightCategorizedToken(CategorizedToken token, List <SyntaxHighlightToken> syntaxTokens)
        {
            Color backColor = editor.ActiveView.BackColor;
            SyntaxHighlightProperties highlightProperties = syntaxHighlightInfo.CalculateTokenCategoryHighlight(token.Category);
            SyntaxHighlightToken      syntaxToken         = SetTokenColor(token, highlightProperties, backColor);

            if (syntaxToken != null)
            {
                syntaxTokens.Add(syntaxToken);
            }
        }
예제 #9
0
        public SyntaxHighlightProperties CalculateTokenCategoryHighlight(TokenCategory category)
        {
            SyntaxHighlightProperties result = null;

            if (properties.TryGetValue(category, out result))
            {
                return(result);
            }
            else
            {
                return(properties[TokenCategory.Text]);
            }
        }
예제 #10
0
        SyntaxHighlightToken SetTokenColor(Token token, SyntaxHighlightProperties foreColor, Color backColor)
        {
            int paragraphStart = DocumentHelper.GetParagraphStart(syntaxEditor.Document.Paragraphs[token.Range.Start.Line - 1]);
            int tokenStart     = paragraphStart + token.Range.Start.Offset - 1;

            if (token.Range.End.Line != token.Range.Start.Line)
            {
                paragraphStart = DocumentHelper.GetParagraphStart(syntaxEditor.Document.Paragraphs[token.Range.End.Line - 1]);
            }

            int tokenEnd = paragraphStart + token.Range.End.Offset - 1;

            return(new SyntaxHighlightToken(tokenStart, tokenEnd - tokenStart, foreColor));
        }
예제 #11
0
 public SyntaxHighlightService(Document document)
 {
     this.document    = document;
     _defaultSettings = new SyntaxHighlightProperties {
         ForeColor = Color.Black
     };
     _keywordSettings = new SyntaxHighlightProperties {
         ForeColor = Color.Blue
     };
     _stringSettings = new SyntaxHighlightProperties {
         ForeColor = Color.Red
     };
     _keywords = DatabaseKeywords.KeywordsUpperSql.Union(DatabaseKeywords.KeywordsLowerSql).ToArray();
 }
        private SyntaxHighlightToken SetTokenColor(Token token, SyntaxHighlightProperties foreColor, Color backColor)
        {
            if (editor.Document.Paragraphs.Count < token.Range.Start.Line)
            {
                return(null);
            }
            int paragraphStart = DocumentHelper.GetParagraphStart(editor.Document.Paragraphs[token.Range.Start.Line - 1]);
            int tokenStart     = paragraphStart + token.Range.Start.Offset - 1;

            if (token.Range.End.Line != token.Range.Start.Line)
            {
                paragraphStart = DocumentHelper.GetParagraphStart(editor.Document.Paragraphs[token.Range.End.Line - 1]);
            }
            int tokenEnd = paragraphStart + token.Range.End.Offset - 1;

            System.Diagnostics.Debug.Assert(tokenEnd > tokenStart);
            return(new SyntaxHighlightToken(tokenStart, tokenEnd - tokenStart, foreColor));
        }
        SyntaxHighlightToken SetTokenColor(Token token, SyntaxHighlightProperties foreColor, Color backColor)
        {
            if (syntaxEditor.Document.Paragraphs.Count < token.Range.Start.Line)
            {
                return(null);
            }
            int paragraphStart = syntaxEditor.Document.Paragraphs[token.Range.Start.Line - 1].Range.Start.ToInt();
            int tokenStart     = paragraphStart + token.Range.Start.Offset - 1;

            if (token.Range.End.Line != token.Range.Start.Line)
            {
                paragraphStart = syntaxEditor.Document.Paragraphs[token.Range.End.Line - 1].Range.Start.ToInt();
            }

            int tokenEnd = paragraphStart + token.Range.End.Offset - 1;

            Debug.Assert(tokenEnd > tokenStart);
            return(new SyntaxHighlightToken(tokenStart, tokenEnd - tokenStart, foreColor));
        }
        void HighlightSyntax(TokenCollection tokens)
        {
            if (TokensMapping.Count == 0)
            {
                AddTokensMapping(TokenCategory.HtmlAttributeName, Color.Red);
                AddTokensMapping(TokenCategory.HtmlAttributeValue, Color.Blue);
                AddTokensMapping(TokenCategory.HtmlComment, Color.Green);
                AddTokensMapping(TokenCategory.HtmlElementName, Color.Brown);
                AddTokensMapping(TokenCategory.HtmlEntity, Color.Green);
                AddTokensMapping(TokenCategory.HtmlOperator, Color.Blue);
                AddTokensMapping(TokenCategory.HtmlServerSideScript, Color.Gray);
                AddTokensMapping(TokenCategory.HtmlString, Color.Black);
                AddTokensMapping(TokenCategory.HtmlTagDelimiter, Color.Blue);
                AddTokensMapping(TokenCategory.CssComment, Color.Green);
                AddTokensMapping(TokenCategory.CssKeyword, Color.Red);
                AddTokensMapping(TokenCategory.CssPropertyName, Color.Red);
                AddTokensMapping(TokenCategory.CssPropertyValue, Color.Blue);
                AddTokensMapping(TokenCategory.CssSelector, Color.Brown);
                AddTokensMapping(TokenCategory.CssStringValue, Color.Blue);

                textProperties           = new SyntaxHighlightProperties();
                textProperties.ForeColor = Color.Black;
            }

            if (tokens == null || tokens.Count == 0)
            {
                return;
            }

            Document document = syntaxEditor.Document;
            List <SyntaxHighlightToken> syntaxTokens = new List <SyntaxHighlightToken>(tokens.Count);

            foreach (Token token in tokens)
            {
                HighlightCategorizedToken((CategorizedToken)token, syntaxTokens);
            }
            document.ApplySyntaxHighlight(syntaxTokens);
        }
        private void AddTokensByRegexPattern(List <SyntaxHighlightToken> tokens, string regexPattern, SyntaxHighlightProperties settings)
        {
            var regex  = new Regex(regexPattern, RegexOptions.CultureInvariant);
            var ranges = document.FindAll(regex);

            for (int i = 0; i < ranges.Length; i++)
            {
                tokens.Add(new SyntaxHighlightToken(ranges[i].Start.ToInt(), ranges[i].End.ToInt() - ranges[i].Start.ToInt(), settings));
            }
        }
예제 #16
0
 void Add(TokenCategory category, Color foreColor) {
     var item = new SyntaxHighlightProperties{ForeColor = foreColor};
     _properties.Add(category, item);
 }
예제 #17
0
        SyntaxHighlightToken SetTokenColor(Token token, SyntaxHighlightProperties foreColor) {
            if (_editor.Control.Document.Paragraphs.Count < token.Range.Start.Line)
                return null;
            int paragraphStart = DocumentHelper.GetParagraphStart(_editor.Control.Document.Paragraphs[token.Range.Start.Line - 1]);
            int tokenStart = paragraphStart + token.Range.Start.Offset - 1;
            if (token.Range.End.Line != token.Range.Start.Line)
                paragraphStart = DocumentHelper.GetParagraphStart(_editor.Control.Document.Paragraphs[token.Range.End.Line - 1]);

            int tokenEnd = paragraphStart + token.Range.End.Offset - 1;
            System.Diagnostics.Debug.Assert(tokenEnd > tokenStart);
            return new SyntaxHighlightToken(tokenStart, tokenEnd - tokenStart, foreColor);
        }
예제 #18
0
 private SyntaxHighlightToken SetTokenColor(Token token, SyntaxHighlightProperties foreColor, Color backColor)
 {
     if (syntaxEditor.Document.Paragraphs.Count < token.Range.Start.Line) {
         return null;
     }
     int paragraphStart = DocumentHelper.GetParagraphStart(syntaxEditor.Document.Paragraphs[token.Range.Start.Line - 1]);
     int tokenStart = paragraphStart + token.Range.Start.Offset - 1;
     if (token.Range.End.Line != token.Range.Start.Line) {
         paragraphStart = DocumentHelper.GetParagraphStart(syntaxEditor.Document.Paragraphs[token.Range.End.Line - 1]);
     }
     int tokenEnd = paragraphStart + token.Range.End.Offset - 1;
     Debug.Assert(tokenEnd > tokenStart);
     return new SyntaxHighlightToken(tokenStart, tokenEnd - tokenStart, foreColor);
 }
예제 #19
0
 private void HighlightSyntax(TokenCollection tokens)
 {
     commentProperties = new SyntaxHighlightProperties();
     commentProperties.ForeColor = syntaxColors.CommentColor;
     keywordProperties = new SyntaxHighlightProperties();
     keywordProperties.ForeColor = syntaxColors.KeywordColor;
     stringProperties = new SyntaxHighlightProperties();
     stringProperties.ForeColor = syntaxColors.StringColor;
     xmlCommentProperties = new SyntaxHighlightProperties();
     xmlCommentProperties.ForeColor = syntaxColors.XmlCommentColor;
     textProperties = new SyntaxHighlightProperties();
     textProperties.ForeColor = syntaxColors.TextColor;
     if (tokens == null || tokens.Count == 0) {
         return;
     }
     Document document = syntaxEditor.Document;
     //CharacterProperties cp = document.BeginUpdateCharacters(0, 1);
     List<SyntaxHighlightToken> syntaxTokens = new List<SyntaxHighlightToken>(tokens.Count);
     foreach (Token token in tokens) {
         HighlightCategorizedToken((CategorizedToken)token, syntaxTokens);
     }
     document.ApplySyntaxHighlight(syntaxTokens);
     //document.EndUpdateCharacters(cp);
 }